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

时间:2015-04-18 20:07:39

标签: java netbeans int subtraction

我是一个初学的Java程序员,编写类似于Minecraft游戏的迷你游戏,除了图形将是轻量级和中世纪游戏的主题。我目前正致力于工具耐久性和得分/经验计算。但我的工具耐久性有问题。镐的耐久性为100,或int pickaxe = 100.在游戏中,您可以挖掘10个资源或50个资源。无论你尝试什么,第一次挖掘它时,持久性将保持在100并且资源将被添加到启动资源,或者int资源= 150.然而,在任何其他时间挖掘资源时,它将正确地减去。添加资源是完美的,它只是耐用性。这对我来说很不寻常。如果它有助于我在Windows 7 Home Premium上使用Java JDK 1.8.0_05,具有4 GB的RAM和1 TB的空间,我正在使用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;
    }
} 

1 个答案:

答案 0 :(得分:0)

你的问题非常简单,你在显示你的镐用法后正在进行上述减法:


    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);

希望这有帮助。