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()メソッドに渡し、これを equal redHealthandに設定しblueHealthます。ただし、ゲームを実行してスパイダーをヒットすると、出力されhit spiderますが、ヘルスは更新されません。

助けて?

4

1 に答える 1

1

あなたの大きな問題はhealth、実際に返すのではなく、「参照渡し」してデータを入力しようとしていることです。

次のようにする必要があります。

public static int getBlueHealth() {
    return blueHealth;
}

また、 bluehealth はすでにpublic static.

参照渡しができたとしても、定数で呼び出すと失敗します。ゲッターまたはセッターが必要かどうか、呼び出しコードから明確ではありません。

于 2013-03-08T02:21:24.453 に答える