0

基本上我正在制作一个需要为角色添加健康的游戏。当玩家击中蜘蛛的命中框时,我希望改变生命值并重新绘制我的框架。我觉得我做得对。这是我的代码:

Frame.java

public static int redHealth;
public static int blueHealth;

public static void getBlueHealth(int health) {
    health = redHealth;
}

public static void getRedHealth(int health) {
    health = blueHealth;
}

// Create health labels
public static JLabel redHealthLabel = new JLabel("Health: " + redHealth);
public static JLabel blueHealthLabel = new JLabel("Health: " + blueHealth);

Key.java

if (Frame.spiderObj.intersects(Frame.blueCharacterObj)) {
    System.out.println("hit spider");
    Frame.getBlueHealth(97);
    Frame.frame.repaint();
    System.out.println(Frame.redHealth + "" + Frame.blueHealth);
}

如您所见,我将97作为参数传递给getRedHealth()andgetBlueHealth()方法,然后将其设置为等于redHealthand blueHealth。但是,当我运行游戏并击中蜘蛛时,它会打印出来hit spider但不会更新健康状况。

有什么帮助???

4

1 回答 1

1

您的大问题是您试图“通过引用传递”来填充health而不是实际返回它。

应该:

public static int getBlueHealth() {
    return blueHealth;
}

另外:您可能不需要吸气剂,因为 bluehealth 已经是public static.

即使您可以通过引用传递,使用常量调用它也会失败。从您的调用代码中不清楚您是否想要获取器或设置器。

于 2013-03-08T02:21:24.453 回答