Hoi,
ich hab wieder ein problemchen
Ich bau ja grad son jump`n run Spiel in java.
Hab mich nu bissel an der Kollisonsabfrage probiert etc und das läuft auch ganz gut soweit.
Allerdings hab ich das Problem das wenn nu die Kollision true ist die CPU last auf 100% hochgeht und ein laufen in die andere richtung ist nicht mehr möglich
Wenn ich die Kollision rausnheme läuft es perfekt
Ich hab ein 2 Dimensonales Array
Movearray[10][10]
Da steht entweder 1 oder 0 drin 0= luft 1=stein bei luft gehen bei stein stehen
Es wird auch 100% cpu last erzeugt wenn ich am stein stehe und nicht mehr auf die laufen taste drücke was es für mich noch etwas schwerer zu verstehen macht
So sieht mein code aus:
// spieler läuft nach rechts
class stepright implements Runnable {
public void run(){
int i=0;
try{
Thread.sleep(20);
while(i<=1){
if(canmove("rechts")==true){
playerx+=1;
testx="koords x:"+playerx;
repaint();
i+=1;
}
}
}catch(Exception e){
System.out.println("Fehler");
}
System.out.println("x:"+playerx);
}}
//Kollison?
boolean canmove(String richtung){
int x= playerx;
if(richtung=="rechts"){
x =(x+(pb+1))/b;
testfeldx="feldx:"+x;
if(movearray[7][x].equals("1")){
return false;
}else{
return true;
}
ich hab wieder ein problemchen
Ich bau ja grad son jump`n run Spiel in java.
Hab mich nu bissel an der Kollisonsabfrage probiert etc und das läuft auch ganz gut soweit.
Allerdings hab ich das Problem das wenn nu die Kollision true ist die CPU last auf 100% hochgeht und ein laufen in die andere richtung ist nicht mehr möglich
Wenn ich die Kollision rausnheme läuft es perfekt
Ich hab ein 2 Dimensonales Array
Movearray[10][10]
Da steht entweder 1 oder 0 drin 0= luft 1=stein bei luft gehen bei stein stehen
Es wird auch 100% cpu last erzeugt wenn ich am stein stehe und nicht mehr auf die laufen taste drücke was es für mich noch etwas schwerer zu verstehen macht
So sieht mein code aus:
// spieler läuft nach rechts
class stepright implements Runnable {
public void run(){
int i=0;
try{
Thread.sleep(20);
while(i<=1){
if(canmove("rechts")==true){
playerx+=1;
testx="koords x:"+playerx;
repaint();
i+=1;
}
}
}catch(Exception e){
System.out.println("Fehler");
}
System.out.println("x:"+playerx);
}}
//Kollison?
boolean canmove(String richtung){
int x= playerx;
if(richtung=="rechts"){
x =(x+(pb+1))/b;
testfeldx="feldx:"+x;
if(movearray[7][x].equals("1")){
return false;
}else{
return true;
}