int currentMoney не обновляется (Greenfoot Java)

Я пытаюсь проверить, достаточно ли у игрока денег, чтобы купить путь. Я использую метод, который возвращает currentMoney переменная. По какой-то причине, когда инт currentMoney обновления в классе денег, он не обновляется в классе путей. Я новичок, поэтому объяснения очень ценятся!

вот мой код пути:

public void clickedOn() 
    {
       MyWorld world = (MyWorld) getWorld();

       if (Greenfoot.mouseClicked(this)) {
         if (money.getCurrentMoney() /* <--not updating */ > 2600)
         {
           moneydollars = true;
           if (isClicked)
           { 
              world.deductMoney(20);
              world.addMaking(5);
              canAfford = true;
              isClicked = false;
           }
           else
           {
                isClicked = true;
           }
         }
         else
         {
           moneydollars = false;
           JOptionPane.showMessageDialog(null,"Oh No! You can't afford that.");
         }
       }
     }

вот мой код класса денег:

    public class Money extends Actor
{
    private int stringLength;
    private String text;
    public int currentMoney;
    private int moneyMaking;
    private int fps = 0;
    // DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG 
    public boolean debug = false;
    // DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG 
    String abc;
    MyWorld world = (MyWorld) getWorld();
    /**
     * Constructor: checks debug, updates image.
     * 
     */

    public Money() 
    {
        if(debug == true) {
          add(99999);
        }
        else
        {
          add(2601);
        }
    updateImage();
    }    
    public void act()
    {
    updateImage();
    fps = fps + 1;
    moneyMake();
    }
    public int getCurrentMoney()
    {
        return currentMoney;
    }
    public int getMoneyMaking()
    {
        return moneyMaking;
    }
    public void updateImage()
    {
        setImage(new GreenfootImage( "Money: $" + currentMoney, 30, Color.BLACK, Color.ORANGE));
    }
    public void add(int x)
    {
        currentMoney += x;
    }
    public void moneyMake()
    {
        if (fps == 68)
        {
            currentMoney = currentMoney + moneyMaking;
            fps = 0;
        }
    }
    public void addMaking(int x)
    {
        moneyMaking += x;
    }
}

Если этой информации недостаточно, пожалуйста, прокомментируйте и спросите, что вам нужно. Возможно, я совершаю простую ошибку, но не вижу ее.

0 ответов

Другие вопросы по тегам