基本上我正在制作一个我需要为角色添加健康的游戏。当玩家击中蜘蛛的命中框时,我希望改变健康状态并重新绘制框架。我觉得我做得对。这是我的代码:
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()
和getBlueHealth()
方法,然后将其设置为等于redHealth
和{{1 }}。然而,当我运行我的游戏并击中蜘蛛时,它打印出blueHealth
但不更新健康状况。
任何帮助???
答案 0 :(得分:1)
你最大的问题是你试图“通过引用传递”来填充health
而不是实际返回它。
应该是:
public static int getBlueHealth() {
return blueHealth;
}
另外:你可能不需要吸气剂,因为bluehealth已经public static
。
即使您可以通过引用传递,使用常量调用也会失败。您的通话代码中不清楚您是否想要获取者或者设置者。