到目前为止,我得到了:
private int currentChoice=0;//the value is the index position within the
//array, so 0 would mean I selected an object
//at index 0.
private ArrayList<Item> playerItems;//This is the array in which I store
//the player's items.
private boolean inventoryDisplayed;//This is used when I click "I" then the
//the arrow keys stop moving the player
//and should now be used to interact with
//the items inside the inventory.
如果你们能帮助我,这会让我的一周更加美好,说真的,这个项目对我来说非常重要,非常感谢任何帮助,感谢您花时间帮助stackOverflow的同伴,祝你好运!生活中,有一个很大的巧克力饼干只是为了阅读直到这里。 :)
答案 0 :(得分:0)
基本上,您可以使用
将元素放在列表中的特定位置list.get(index);
或在你的情况下
playerItems.get(currentChoice);
答案 1 :(得分:0)
首先,将playerItems定义为private List<Item> playerItems;
,然后将其实例化为playerItems = new ArrayList<Item>();
。这是精心设计的代码的核心原则之一,特别是如果您稍后需要将playerItem更改为LinkedList
。
输入'i'字符时,您需要向相应的组件添加KeyListener
或KeyAdapter
。然后,按如下方式实现keyTyped(或者keyPressed)方法:
@Override
public void keyTyped(KeyEvent e)
{
switch(e.getKeyChar())
{
case KeyEvent.VK_LEFT:
if(--currentChoice < 0)
currentChoice = playerItems.size() - 1;
break;
case KeyEvent.VK_RIGHT:
if(++currentChoice >= playerItems.size())
currentChoice = 0;
break;
}
}
然后,您可以使用以下代码检索相应的项目:playerItems.get(currentChoice);