場合によっては、特定のゾーン/エリアに入ったり出たりした後に特定のアクションを実行するため、ゲーム内にゾーン/エリアを作成したいと思うかもしれません。 以前は、センサーを使ったbodyのような物理オブジェクトでこれを実装する方法を説明しました (この記事を確認してください - クリック)。 この例では、物理演算を組み込まずに別の方法で実装しています。update ハンドラを使い、プレイヤーがゾーン内にいるかどうかを常に確認します。
やらなければいけないことは、Sprite(ゾーン/エリアを視覚的に表す)を新規に作成して onManageUpdate() を上書きすることです。- 以下の例を参照してください:
Sprite ourArea = new Sprite(x, y, 100, 300, textureRegion, vbo) { @Override protected void onManagedUpdate(float pSecondsElapsed) { if (player.collidesWith(this)) { // execute actions // while player is inside area (colliding/overlapping) } }; };
この例では、 "player"オブジェクトが使用するプレイヤーのSpriteになるので覚えておいてください。 これをどこで使用できるのでしょうか? 例えば、プレイヤーが何らかのエリア内にいる間、プレイヤーの物理bodyに特定の力を加えます(例えば重力を強くするなど、あなたの要件次第です)。 この例ではSpriteを使用しており、この"エリア"が何らかのテクスチャ領域を持っていることを前提としています。 もしこのエリアに画像が必要ない(空白にする)場合は、Entity クラスを使用してください。