簡體   English   中英

我的文字游戲戰利品系統遇到問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM