首页 > 解决方案 > Libgdx 将运动图像返回到原始位置

问题描述

我将这个图像从一个数组(50,100)显示在屏幕上,当用户触摸该图像时,它会移动到屏幕上的不同位置(100,200),我想知道用户如何再次触摸同一个图像并且它移回原来的位置。

        final Image img = pic.get(0);
        pic.get(0).addListener(new ClickListener(){
            @Override
            public void clicked(InputEvent event, float x, float y) {
                System.out.println("CLICKED!!!");
                img.addAction(Actions.moveTo(300,700));
            }
        });
   }

标签: javalibgdx

解决方案


保存上一个位置。如果单击的图像不是上一个位置,则返回上一个位置,否则转到新位置:

final Image img = pic.get(0);
final float prevX = img.getX(), prevY = img.getY();

img.addListener(new ClickListener(){
    @Override
    public void clicked(InputEvent event, float x, float y) {
        System.out.println("CLICKED!!!");
        if(img.getX() != prevX || img.getY() != prevY)
            img.addAction(Actions.moveTo(prevX, prevY));
        else
            img.addAction(Actions.moveTo(300,700));
    }
});

推荐阅读