我喜欢制作游戏,但收集积分时遇到麻烦。 目的是在对象'face'与injekBox发生碰撞时增加/减少字符点(charhop +1或-1),但该点只是增加或减少一次然后它返回到先前的值。 即使对象停止,日志仍然会打印该值 如果“脸部”与某个盒子相撞,我想让点数改变一次,并且在与另一个盒子相撞后会再次改变
char1.setHops(0);
public void onUpdate(final float pSecondsElapsed) {
if (char1.isJump()){
int rockPoint = char1.getPoints();
int maxBox = listBox.size();
int charHop = char1.getHops();
for (int j = 0; j < maxBox ; j++){
if (j == rockPoint){
j++;
}
Box injekBox = listBox.get(j);
if(injekBox.getRectangle().collidesWith(face)){
if(char1.isTurn()){
charHop++;
if (charHop == (maxBox - 1)){
char1.setTurn(false);
}
} else {
charHop--;
}
Log.i(this.toString(),"charHop: "+charHop);
injekBox.getRectangle().setColor(1, 0, 0);
} else {
injekBox.getRectangle().setColor(1, 1, 1);
}
}
}
}
抱歉写不好...... 感谢您的关注:)
答案 0 :(得分:1)
charHop
的范围仅在onUpdate
之内。离开该方法后,该变量的内容就消失了。您需要char1.getHops()
的对应部分 - 例如char1.setHops(charHop);
。