为什么这个sprite的jump()方法不起作用?

时间:2014-10-26 15:11:40

标签: java android libgdx sprite

我的游戏现在只有2个班级,“MyGdxGame”和“Player”。我已经在我的Player类中添加了一个方法jump()并覆盖了touchDown()方法,以便在每次点击屏幕时调用jump:

public void jump() {

    startTime = TimeUtils.nanoTime();
    elapsedTime = TimeUtils.timeSinceNanos(startTime);

    boolean jumpTime = elapsedTime < 2000000001;

    while (jumpTime) {
    moveBy(xSpeed, ySpeed);
    }
    moveBy(xSpeed, -ySpeed);
}

@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
    //moveBy(xSpeed, ySpeed);
    jump();
    return true;
} 

现在当点击屏幕时,精灵会上升,但不会再回落。在点击屏幕之前,精灵以恒定速度xSpeed从左向右移动。有什么想法吗?

编辑:我构建了我的项目然后再次运行它。当我点击屏幕然后崩溃lol

时冻结

1 个答案:

答案 0 :(得分:1)

布局jumpTime永远不会在 jump()方法的while循环中更新。

尝试:

startTime = TimeUtils.nanoTime();
long jumpTime= 2000000001;

while (TimeUtils.timeSinceNanos(startTime) < jumpTime) {
   moveBy(xSpeed, ySpeed);
}

moveBy(xSpeed, -ySpeed);