Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么精灵的这个jump()方法不起作用?_Java_Android_Libgdx_Sprite - Fatal编程技术网

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

Java 为什么精灵的这个jump()方法不起作用?,java,android,libgdx,sprite,Java,Android,Libgdx,Sprite,我的游戏现在只有两个类,“MyGdxGame”和“Player”。我在我的玩家类中添加了一个方法jump(),并覆盖了touchtdown()方法,以便在每次点击屏幕时调用jump: public void jump() { startTime = TimeUtils.nanoTime(); elapsedTime = TimeUtils.timeSinceNanos(startTime); boolean jumpTime = elapsedTime < 20

我的游戏现在只有两个类,“MyGdxGame”和“Player”。我在我的玩家类中添加了一个方法
jump()
,并覆盖了
touchtdown()
方法,以便在每次点击屏幕时调用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;
} 
public void jump(){
startTime=TimeUtils.nanoTime();
elapsedTime=TimeUtils.timeSinceNanos(startTime);
布尔跳跃时间=elapsedTime<20000001;
while(跳时){
moveBy(xSpeed,ySpeed);
}
moveBy(xSpeed,-ySpeed);
}
@凌驾
公共布尔接地(整数屏幕X、整数屏幕Y、整数指针、整数按钮){
//moveBy(xSpeed,ySpeed);
跳跃();
返回true;
} 
现在当屏幕被点击时,精灵会上升,但不会下降。在点击屏幕之前,精灵以恒定速度X从左向右移动。有什么想法吗


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

布尔值
跳跃时间
跳跃()方法的while循环中永远不会得到更新

尝试:

startTime=TimeUtils.nanoTime();
跳远时间=20000000001;
while(TimeUtils.timeSinceNanos(startTime)
哦,我明白了。。我做了更改,即使它阻止应用程序崩溃,精灵也不会跳:(当屏幕被点击时,游戏暂停2秒钟,然后恢复正常
startTime = TimeUtils.nanoTime();
long jumpTime= 2000000001;

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

moveBy(xSpeed, -ySpeed);