积分迅速变化

时间:2012-01-09 23:18:52

标签: android collision-detection andengine collision point

我喜欢制作游戏,但收集积分时遇到麻烦。 目的是在对象'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);
                    }

                }

            }


        }

抱歉写不好...... 感谢您的关注:)

1 个答案:

答案 0 :(得分:1)

charHop的范围仅在onUpdate之内。离开该方法后,该变量的内容就消失了。您需要char1.getHops()的对应部分 - 例如char1.setHops(charHop);