[英]I have run into an issue with my text game loot system
public void mouseClicked(MouseEvent m) {
JList l = (JList)m.getSource();
// If click twice then collect item
if (m.getClickCount() == 2 && l.getSelectedValue() != null) {
String i = l.getSelectedValue().toString();
int q = Integer.parseInt(i.replaceAll("\\)","").split("\\(")[1]), q1 = 0;
String i2 = i.split("\\(")[0];
String i3 = i2.substring(0, i2.length() - 1);
if (q > 1) {
q1 = Integer.parseInt(JOptionPane.showInputDialog("How many would you like to take?"));
}
else
q1 = 1;
PlayerHandler.addItem(i3, q1);
if (q1 == q) {
lmb.remove(l.getSelectedIndex());
}
else {
String t = l.getSelectedValue().toString();
int s = l.getSelectedIndex();
lmb.remove(s);
lmb.add(s, t.replaceAll(Integer.toString(q), Integer.toString(q - q1)));
}
lma.clear();
PlayerHandler.listInventory(lma);
}
}
});
我正在尝试学习文字游戏项目,但是在敌人死后遇到了收集物品的问题。
当库存出现时,每个物品有两个或两个以上时,会弹出一个窗口,要求玩家输入他们希望拿的数量,假设库存中有5把木剑,则允许他们拿100把木剑,将它们放置在清单中,并在怪物战利品表中留下“木剑(-95)”。
如果您需要更多信息,请告诉我,这已经很晚了,我的思想家也很沮丧。
更改行:
q1 = Integer.parseInt(JOptionPane.showInputDialog("How many would you like to take?"));
至:
q1 = Math.min(Integer.parseInt(JOptionPane.showInputDialog("How many would you like to take?")), q);
验证他们的输入。 您可以进行简单的比较,以确保他们请求的数量小于或等于可用数量。 另外,根据您的代码片段,我建议您使用比m,1,q,q1,i,i2和i3更多的描述性变量名称。 当您稍后再次尝试使用该代码时,如果正确命名变量将更容易记住所有操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.