我正在制作一个游戏,一个RPG(是的另一个家伙试图制作其中一个),我已经成功完成了大部分工作,除了库存以及它与世界其他地方的行为,现在我想要以逻辑方式在列表之间移动项目,例如我杀死一个怪物,怪物掉落一个番茄,Tomato()将在ArrayList worldInventory中创建,并在x,y处绘制,如果玩家走过番茄,那个番茄应该被移到ArrayList Inventory中,如果玩家想装番茄,番茄应该搬进ArrayList装备。
因此,为了使事情更容易理解,我有3个列表:
ArrayList<Item> worldInventory
ArrayList<Item> Inventory
ArrayList<Item> equipped.
我想在它们之间移动Tomato()
的副本,如果Tomato()
的值在列表中更改并且已移动,我希望Tomato()
保留其值。
; D我会给一个大尺寸的互联网巧克力饼干,无论谁帮助我,非常感谢。谢谢你。
答案 0 :(得分:1)
关于项目丢弃:
Tomato tomato = new Tomato();
worldInventory.add(tomato);
正在接机:
worldInventory.remove(tomato);
inventory.add(tomato);
装备:
inventory.remove(tomato);
equipped.add(tomato);
只是想知道你为什么需要配备ArrayList?
你可以在WorldObject中有一个布尔标志(boolean equipped = false
)
当项目配备时,只需将其设置为true。
答案 1 :(得分:0)
如果将对象添加到列表中,它将保留其所有字段值。只是:
Tomato yourTomatoObject = otherList.remove(index);
inventory.add(yourTomatoObject);
答案 2 :(得分:0)
你可以这样做:
public static void main(String[] args) {
ArrayList<String> test = new ArrayList<String>();
ArrayList<String> test1 = new ArrayList<String>();
test.add("test");
test1.add(test.get(0));
test.remove(0);
System.out.println("" + test.size());
System.out.println("" + test1.get(0));
}
您可以将其添加到一个arraylist并将其从另一个arraylist中删除。