Java 将参数值作为变量值传递
基本上,我在做一个游戏,我需要给角色增加生命值。当玩家点击蜘蛛的命中框时,我希望改变生命值并重新绘制框架。我觉得我做对了。这是我的密码:Java 将参数值作为变量值传递,java,variables,parameters,Java,Variables,Parameters,基本上,我在做一个游戏,我需要给角色增加生命值。当玩家点击蜘蛛的命中框时,我希望改变生命值并重新绘制框架。我觉得我做对了。这是我的密码: Frame.java: public static int redHealth; public static int blueHealth; public static void getBlueHealth(int health) { health = redHealth; } public static void getRedHealth(int
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);
if (Frame.spiderObj.intersects(Frame.blueCharacterObj)) {
System.out.println("hit spider");
Frame.getBlueHealth(97);
Frame.frame.repaint();
System.out.println(Frame.redHealth + "" + Frame.blueHealth);
}
Key.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);
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
和blueHealth
。但是,当我运行游戏并命中蜘蛛时,它会打印出hit spider
,但不会更新运行状况
有什么帮助吗?您最大的问题是,您试图“通过引用传递”来填充
健康状况,而不是实际返回它
应该是:
public static int getBlueHealth() {
return blueHealth;
}
另外:您可能不需要getter,因为bluehealth已经是public static
即使可以通过引用传递,使用常量调用它也会失败。您的调用代码不清楚您想要的是getter还是setter。您的赋值是向后的;您需要redHealth=health
和blueHealth=health
。我建议您检查一下。首先,我建议您将getXXX()
方法更改为setXXX()
,因为您正在更改值,而不是读取它们。第二,我建议您添加一些SOP语句或使用调试器来确定代码正在做什么。谢谢John和isbadawi:)修复了我的问题。干杯