1

オブジェクトが等尺性チャンクの境界内にあるかどうかを確認するにはどうすればよいですか? たとえば、プレーヤーがあり、この等尺性チャンクの境界内にあるかどうかを確認したいと考えています。OpenGL Quads を使用してアイソメトリック チャンクのタイルを描画します。

私の最初の試みは、正方形のパターンのようなものをチェックインすることでした:

e = object;
this = isometric chunk;

        if (e.getLocation().getX() < this.getLocation().getX()+World.CHUNK_WIDTH*
                World.TILE_WIDTH && e.getLocation().getX() > 
                this.getLocation().getX()) {
            if (e.getLocation().getY() > this.getLocation().getY() &&   
                    e.getLocation().getY() < this.getLocation().getY()+
                    World.CHUNK_HEIGHT*World.TILE_HEIGHT) {
                return true;
            }
        }
        return false;

ここで何が起こるかというと、実際のアイソメトリック境界ではなく、チャンクの周りの SQUARE をチェックインすることです。画像の例: (プログラムが境界をチェックする場所は赤です)

私が今持っているもの:

長方形チェック

ご希望のチェック:

等尺性チェック

最終的には、チャンク内の各タイルに対して同じことをしたいと考えています。

追加情報:

これまで私のゲームでは、タイルごとにしか移動できませんでしたが、自由に移動できるようにしたいのですが、それでもタイルの場所が必要なので、タイルのどこにいてもタイルの場所は特定されますタイル。次に、それらが別のタイルの境界ボックス内にある場合、それらのタイルの場所が新しいタイルになります。同じことがチャンクにも当てはまります。プレイヤーにはエリアがありますが、この場合、エリアは問題ではありません。X と Y が境界ボックス内にある限り、true を返す必要があります。それらは完全にタイル上にある必要はありません。

4

0 に答える 0