我正在制作一个有守门员的游戏。我希望他永远来回移动。我有一个名为goalieposx 的int(x 轴上的守门员位置),我希望它上升1 直到达到200,然后下降1 直到它回到0 并重复。我试过以下
//this bit isnt in the method, its outside as global varibale
boolean forward=true
//this bit is in a method which is continiouly called nonstop
if (goalieposx<200){
forward=true;
}
else if (goalieposx>200){
forward=false;
}
System.out.println(forward);
if(forward=true){
goalieposx++;
System.out.println("forward");
}
else if (forward=false){
goalieposx--;
System.out.println("backwards");
}
}
这个方法被连续调用。它打印 true 直到达到 200,然后打印 false。但是,它总是向前打印,从不向后打印。所以结论是:布尔值按预期变化,但第一个 if 总是被调用,它似乎忽略了条件
我也试过这个
if(forward = true){
if(goalieposx==200){
forward=false;
}
else{
goalieposx++;}
}
else{
if(goalieposx==0){
forward=true;
}
else{
goalieposx--;}
System.out.println(goalieposx);
}
但这也不起作用,它先打印 1,然后再打印 2,以此类推,直到 200,然后永远打印 200。任何人都知道我该如何解决这个问题?if 语句完全是错误的想法吗?