java - 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));
}
});
}
解决方案
保存上一个位置。如果单击的图像不是上一个位置,则返回上一个位置,否则转到新位置:
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));
}
});
推荐阅读
- node.js - 使用 Mocha 和 Supertest 测试缓存
- php - 加入表格时如何使用 with()
- github - 在家里的电脑上看不到 git 分支
- tsql - 遍历数据库中的每个表并获取一列的前三位
- google-calendar-api - 使用 Google API 与 Squarespace 集成 Google 日历
- javascript - 试图确定“document.getElementById”中引用了哪些字段
- liquibase - 使用 loadData/loadUpdateData 时,如何根据 .csv 文件中的数据在另一个表中找到外键?
- c - 每个变量在 C 中都有一个存储类吗?
- c# - Windows 服务 onStart() 未执行
- sql-server - 将超过 1024 列的 csv 文件导入新的 SQL Server 表