如何在java libgdx中停止+ =函数

时间:2014-11-18 21:20:49

标签: java libgdx

Y继续前进,在Y = 0时将其设置为0;

所以精灵应该从中间到750px然后在我点击之后它应该上升到650 ......我点击它650 px之后它应该下降到750(依此类推)

但是代码并不重要,我想知道的是如何停止在Y上添加+ 5px和Y.stop();或Y.delete();或Y.destroy();

Y + = 5;

对不起这里的代码很少

public int Y,YspriteDown,Yposition;
public boolean AppON = true;


w = Gdx.graphics.getWidth();
h = Gdx.graphics.getHeight();

YspriteDown=h/2+50;
YspriteUp=h/2-50;




batch.begin();
if(AppON= true)
        {

            Yposition = YspriteDown + Y ;
            Y +=5;

            if(Yposition == h-50)
            {
                Y =0;
                batch.draw(Assets.sprite1, w / 2 - 16, Yposition);
            }


batch.end();

1 个答案:

答案 0 :(得分:0)

问题是Clicked变量永远不会设置为false,所以外部循环仍然继续,向y添加5,直到再次等于100,然后y设置为0,循环继续。

简单的解决方法是在if语句中将Clicked变量的值更改为false。

if (Clicked)
{
        Y +=5;
        batch.draw(Assets.sprite1,w/2-16,Y);
        if (Yposition == 100)
        {
            Y = 0;
            batch.draw(Assets.sprite1, w / 2 - 16,h-150);
            Clicked = false;
        }
}

编辑:

使用新代码,你不应该将Yspritedown设置为0,否则循环会像之前一样继续,它需要以h-50结束并保持在那里,而不是恢复到原来的位置

编辑:

使用新的新代码,需要有一个内部循环来检查精灵是否仍然在移动,无论如何都没有" destroy"变量没有导致NullPointerException,所以做这样的事情

while(appIsRunning){
    if(clicked){
        boolean doneMoving = false;
        y_position += 5
        if(Y_Position >= h-50){
            y_position = h-50;
            batch.draw(arg, arg, arg);
            doneMoving = true;
        }
    }
}