0

私は一般的に Java と Slick2D の両方に不慣れで、Google を閲覧した後でさえ、質問に対する答えが見つかりませんでした。私のゲームでは、現在前後に走ったりジャンプしたりできるキャラクターがいます。私は彼が発射物を撃てるようにしたいのですが、私がそれをコーディングした方法では、彼が方向を変えたりジャンプしたりすると、発射物は軌道を変えます。

if(input.isKeyPressed(Input.KEY_SPACE)){    
        shotX = charPosX;
        shotY = charPosY;
    if(left){
            shotX += delta * -0.5f;             
        }else{
            shotX +=delta * 0.5f;
        }

}

これは基本的に私が現在持っているコードです。「左」ブール値は、キャラクターが左を向いているか右を向いているかを単純に示します。明らかな何かが欠けているように感じますが、誰かがこれに対する簡単な解決策を持っているかどうか疑問に思っていました。おそらく、レンダリング後にショットの位置をキャラクターの位置に設定するのをやめる方法です。どんな助けでも大歓迎です。

4

1 に答える 1

0

コメントで言われているように、そのような小さなコードから状況を判断するのは難しいですが、スペースバーが保持されている間、あなたが持っているif句が何度も実行され、弾丸の位置をキャラクターの位置に合わせます。

おそらくより良いのは、弾丸クラスにブール値を持ち、それが発射されたかどうかを示し、デルタ時間の速度を値に追加して、更新期間ごとに場所を更新することです。あなたが説明している状況では、スペースバーを押すたびにリセットされる弾丸が 1 つしかないようです。

また、if文に移動コードが入っているため、弾丸はスペースキーを押している間しか移動できません。これが役立つことを願っています。

于 2012-12-23T01:21:44.973 に答える