【问题标题】:Why is this jump() method for a sprite not working?为什么这个 sprite 的 jump() 方法不起作用?
【发布时间】:2014-10-26 15:11:39
【问题描述】:

我的游戏现在只有 2 个类,“MyGdxGame”和“Player”。我在我的 Player 类中添加了一个方法 jump() 并重写了 touchDown() 方法以在每次点击屏幕时调用跳转:

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 从左向右移动。有什么想法吗?

编辑:我构建了我的项目,然后再次运行它。当我点击屏幕时它会冻结然后崩溃大声笑

【问题讨论】:

    标签: java android libgdx sprite


    【解决方案1】:

    布尔值jumpTime 永远不会在 jump() 方法的 while 循环内更新。

    试试:

    startTime = TimeUtils.nanoTime();
    long jumpTime= 2000000001;
    
    while (TimeUtils.timeSinceNanos(startTime) < jumpTime) {
       moveBy(xSpeed, ySpeed);
    }
    
    moveBy(xSpeed, -ySpeed);
    

    【讨论】:

    • 哦,我明白了.. 我进行了更改,即使它阻止了应用程序崩溃,精灵也没有跳跃:(当点击屏幕时游戏暂停 2 秒然后恢复正常
    猜你喜欢
    • 2015-10-05
    • 2015-07-08
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多