为什么我的整数需要两次尝试才能正确减去?

Why does my interger take two tries to properly subtract?

我是一个新手 Java 程序员正在编写一个类似于 Minecraft 游戏的小游戏,除了图形将是轻量级的并且游戏的主题是中世纪。我目前正在研究工具耐用性和 score/experience 计算。但是我在工具耐用性方面遇到了麻烦。镐的耐久度为100,即int pickaxe = 100。在游戏中,你可以开采10个资源或50个资源。无论你尝试什么,第一次开采时,耐久度将保持在 100,资源将添加到初始资源中,或 int resources = 150。然而,在你开采资源的任何其他时间,它都会适当地减去。资源的添加工作完美,只是耐用性下降了。这对我来说很不寻常。如果有帮助,我正在使用 Java JDK 1.8.0_05 on Windows 7 Home Premium with 4 GB of ram and 1 TB of space 我正在使用Netbeans IDE 8.0.1开发本程序。感谢您花时间阅读这个问题。


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    try{
        AudioInputStream audioInputStream =AudioSystem.getAudioInputStream(this.getClass().getResource("select.wav"));

        Clip clip = AudioSystem.getClip();
        clip.open(audioInputStream);
        clip.start( );
    }
    catch(Exception ex) {}       

    resources = resources + 10;
    JOptionPane.showMessageDialog(null, "Your remaining pickaxe use is:");
    JOptionPane.showMessageDialog(null, pickaxe);
    score = score + 50;

    pickaxe = pickaxe - 10;
    JOptionPane.showMessageDialog(null, "Your resource balace");
    JOptionPane.showMessageDialog(null, resources);

    if (pickaxe < 0) {
        JOptionPane.showMessageDialog(null, "You need more pickaxe use! Adding More for 15 Resources!");
        resources = resources - 15;
        pickaxe = 100;
    }
} 

你的问题很简单,你在显示你的 Pickaxes 用法后进行了上述减法:


    resources = resources + 10;
    JOptionPane.showMessageDialog(null, "Your remaining pickaxe use is:");
    JOptionPane.showMessageDialog(null, pickaxe);
    score = score + 50;

这需要在显示之前发生:

    pickaxe = pickaxe - 10;
    JOptionPane.showMessageDialog(null, "Your resource balace");
    JOptionPane.showMessageDialog(null, resources);

希望对您有所帮助。