我目前正在创建一个清单系统,用户可以在其中从其清单列表集合中选择一个项目,右侧的图标将更新。
截至目前,我已经实现了一个 ClickListener 来从清单列表中获取当前选定的项,并调用了我创建的 .getImage() 方法来获取选定项的图标。
我用了 table.add(image);将图标添加到表格中。但是,当图标添加到表中时,它将填满该空间,并且当用户选择另一个项目时,将在右侧创建另一列。这就是问题所在。
如何让图像区域在用户选择另一个项目时更新,而不是在右侧创建另一列?
目前的情况是这样的:https://imgur.com/a/O6SW8gi
我希望使用用户单击的最新项目更新剑的区域。
这是我的代码:
package com.sps.game.inventory;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input;
import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.scenes.scene2d.*;
import com.badlogic.gdx.scenes.scene2d.ui.*;
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
import com.badlogic.gdx.utils.viewport.FitViewport;
import com.badlogic.gdx.utils.viewport.Viewport;
import com.sps.game.controller.InventoryController;
import com.sps.game.controller.PlayerController;
import java.util.ArrayList;
public class PlayerInventory {
public Stage stage;
public SpriteBatch sb;
private Viewport viewport;
private Skin skin = new Skin(Gdx.files.internal("core/assets/pixthulhuui/pixthulhu-ui.json"));
private List<Item> inventory;
private List<Image> itemImages;
private InventoryController inventoryController;
private InputProcessor oldInput;
Table table = new Table(skin);
public PlayerInventory(SpriteBatch sb, PlayerController playerController) {
this.sb = sb;
viewport = new FitViewport(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), new OrthographicCamera());
stage = new Stage(viewport, sb);
inventoryController = new InventoryController();
inventory = inventoryController.getInventoryList();
// itemImages = inventoryController.getImageList();
}
Helenr
慕的地8271018
相关分类