0

ゲームには 2 つの Path2D オブジェクトがあり、1 つはプレイヤー用、もう 1 つはボスの 1 人が持つ触手用です。Path2D を使用する必要があるのは、バウンドをプレーヤー/触手と一緒に回転させて、その横に 5 ピクセル立っている場合に打たれないようにするためです。これの問題はplayerPath.intersects(tentaclPath)、Path2D が四角形との交差しかチェックできないため、使用できないことです。これは、私のゲームで Path2D を使用する目的を無効にするため、問題です。パスの1つを長方形に転送せずに、それらが交差するかどうかを確認するにはどうすればよいですか?

4

1 に答える 1

3
  1. 触手とプレイヤーが閉じたパスであることを確認してください。(そうでない場合、それらは暗黙のうちに閉じられ、そうすべきではないと思われるときに触手ヒットが発生します。)
  2. Area クラスを使用して交差を計算し、それが空かどうかを確認します

(おおよそのコード)

import java.awt.geom.Area;
...
boolean playerHitByTentacle(Tentacle t, Player p) {
    Area player = new Area(p.getPath2D());
    Area tentacle = new Area(t.getPath2D());
    player.intersect(tentacle);
    return !player.isEmpty();
}
于 2013-05-30T14:31:07.513 に答える