所以我使用了一个断点,但是断点从来没有碰到那里的if语句用于测试目的
基本上我要做的是当powerupStart == 1500时有一个上电负载; (它设置为500用于测试目的),它做得很好。现在我希望它在400内没有发生冲突时消失,而且正在使用的变量是powerupTimeOut; powerupTimeOut应该在powerupStart = 1500时递增; (或者在500以下的代码中进行测试)但是powerupTimeOut没有增加,我无法弄清楚为什么因为它在powerupStart增加的同一个地方,并且工作得很好。
游戏代码
public void update() {
score++;
powerupStart++;
if (powerupStart == 500) {
loadme();
powerupTimeOut++;
}
if (powerupStart == 510) {
//this is where my breakpoint is for testing
//even without this it doesnt work
}
if (powerupStart > 499) {
Log.d("powerupStart", "Powerup Start == 1000");
powerup.setAlive(true);
powerup.setCollidable(true);
powerupTimeOut =0;
powerupTimeOut++;
}
if (powerupTimeOut == 400) {
powerup.setAlive(false);
powerupTimeOut = 0;
powerupStart = 0;
}
int inputs = getTouchInputs();
if (inputs > 0) {
touch = getTouchPoint(0);
if (touch.y > getScreenHeight() - 50000) {
square.position.x = touch.x - square.getWidth();
square.position.y = touch.y - square.getHeight();
}
}
}
//load me class
public void loadme() {
int w = getScreenWidth();
int h = getScreenHeight();
powerup = new Sprite(this);
if (!powerup.getTexture().loadFromAsset("triangle.png")) {
fatalError("Error loading da triangle son");
}
powerup.position = new Float2(10, h-10);
powerup.setVelocity(new Float2(6.0f, -6.0f));
//keep powerup inside secreen boundary
Point size5 = powerup.getSize();
powerup.addAnimation(new ReboundBehavior(new RectF
(0 , 0 , w-size5.x, h-size5.y),size5,powerup.getVelocity()) );
powerup.setCollidable(false);
powerup.setIdentifier(POWERUPID);
addToGroup(powerup);
powerup.setAlive(false);
}
答案 0 :(得分:1)
如果那个完全你的代码的方式可能是因为没有触发中断,因为没有任何值得破解的东西。 IOW,无论是真是假,无论如何都不会发生,重要的是什么?此...
int p = 10;
if(p == 10) { // Breakpoint set on the if
System.out.println("Hello");
}
将触发断点。此...
int p = 10;
if(p == 10) { // Breakpoint set on the if
// System.out.println("Hello");
}
不会出现在Elipse Kepler中。
如果有一些特别有趣的东西,你可以启用断言检查java -ea
并使用assert powerupStart == 510 : "Your message";
。如果没有,它将在声明中断,并抛出AssertionError
,并报告“您的消息”。它尽管结束执行......
int p = 9;
assert p == 10 : "P isn't 10";
System.out.println("Hello");
我得到了休息和异常,但没有Hello。
答案 1 :(得分:1)
powerupTimeOut =0;
powerupTimeOut++;
此代码将powerupTimeOut
设置为0,然后将其递增1.您只会看到powerupTimeOut
设置为1。
删除powerupTimeOut = 0;
。
关于你的断点;把东西放在那里打破! System.out.println();
不会对其他任何内容产生任何负面影响,您将触发断点。