2 回答
TA贡献1780条经验 获得超3个赞
解决。您不应该在每次单击屏幕时使用 table.add(单击图像)。add() 创建一个新单元格。相反,请在初始布局期间仅添加一次占位符图像,并保留对它的引用。在我的ClickListener中,我使用clickedImage.setDrawable()来更改显示的图像。
TA贡献1796条经验 获得超4个赞
我发现了问题,查看LibGDX Wiki表 - 添加单元格,似乎您正在使用的方法不会替换单元格中的上一个actor,它只会在行中添加另一个actor。相反,您应该将显示的图像保存在add()List
public class PlayerInventory {
[..........................]
Item clickedItem; // This will save your clicked item
Image clickedImage; // This will save your clicked image;
[..........................]
inventory.addListener(new ClickListener() {
public void clicked(InputEvent event, float x, float y) {
if (clickedItem == null && clickedImage == null) {
clickedItem = inventory.getSelected(); // This line changed
clickedImage = clickedItem.getImage(); // This line changed
table.add(clickedImage);
} else {
clickedItem = inventory.getSelected(); // This line changed
clickedImage = clickedItem.getImage(); // This line changed
}
System.out.println(clickedItem.getName());
}
}
如果之前没有图像,这将添加图像,如果以前有图像,则替换图像。希望这有帮助!
添加回答
举报