私はJavaを学ぶためにslick2dで作成しているゲームで、複数のレベルのそれぞれにFootballer
と複数の他のユニットがあり、フットボールチームと対話できるようにしたいと考えています。私はまた、他のユニットがお互いにやり取りすることを望んでいます(例えば、複数のBall
が互いに衝突しています)(これらのユニットのいくつかは、複数のe/gの複数のユニットと同じクラスになることがあります。Defender
)。私は、しかし、これらの相互作用を検出し、ユニットを適切に更新する方法は不明です。例えば、私は私のFootballer
を持っている:JavaとSlick2d - オブジェクトの相互作用
public class Footballer extends Unit {
public Footballer(float x, float y){
super("res/ballerpicture", x, y)
}
}
そして、このクラスの中に、私は(私の入力に応じて1 Footballer
を移動できるようにユニットのクラスに更新機能を無効にします更新機能を持っている - これはなしで働いています衝突検出以外の問題)。
私はその後、例えば、私のマップ5つのボールの上にロードされている可能性があります。たとえば
public class Ball extends Unit {
public Ball(float x, float y){
super("res/ballpicture", x, y)
}
}
、私は移動、Footballer
との衝突時のボールのいずれかを更新する方法を知っていただきたいと思いますそれらが衝突するたびにプレーヤーから1タイル離れています。
私のUnit
クラスには整数方向(left = 1、right = 2など)に基づいて単位を移動するmove
メソッドが含まれています。
この質問に過度の不満があるか、十分な情報が含まれていないとお詫び申し上げます。
ありがとうございます!これはプレーヤーやボールの更新方法ですか?いくつかのレベルでは複数のボールがある可能性があります - これを回避するにはどうしたらいいですか? –
ゲームのアーキテクチャによって異なります。私はプレーヤーに実装します。すべてのボールをリストに格納すると、交差点の各要素をチェックできます(これは計算集中型です)。しかし、それは基本的にあなたのボールがゲームの世界にどのように格納されているかに依存します。また、これをボールの更新メソッドに実装し、ゲーム内の各ボールの各更新メソッドを呼び出すこともできます。 –
私は自分の投稿を編集して、リストを繰り返して何を意味するのかを示します。 –