サイトのトップへ戻る

AndEngineドキュメント 日本語訳

"コイン"を作成する:

ほとんどのゲームでは、プレイヤーは宝かそれに類似したものを集める必要があります。この短い記事では、簡単に"コイン"を制御する方法を記載します。

Spriteクラスの拡張を作成する必要はありません。必要に応じて、Sprite もしくはAnimatedSprite で十分です。 コインの基本クラスとしてSprite を使用しているので、この例ではAndEngine のエフェクトのみが使われています。 ではこの例にしたがってやってみましょう。以下に説明があります。

Textオブジェクトは、使用するであろう文字全てを使って初期化することが重要なので気をつけてください。 スコアの場合、"Score:0123456789"の文字列蚤を使用します。これらの文字をつかってtextオブジェクトを初期化することがなぜそんなに重要なのでしょうか? 我々はメモリを '確保'しておかなければなりません。それをしないと、新しいスコアでスコアテキストを変更する(違う文字が使用される)たびに、目に見えてスローダウンが発生するでしょう! また、スコアを保存するためのintやlongフィールドを新規に作成してください。
Text scoreText = new Text(0, 0, yourFont, "Score:0123456789",
this.getVertexBufferObjectManager());
  • この新しいtextをHUDに追加します - hud.attach(scoreText);
  • スコアテキストを簡単に変更するために新しくメソッドを作成します:
private void addToScore(int i)
{
    scoredPoints += i;
    scoreText.setText("Score: " + scoredPoints);
}
そしてこれで、"コイン"を表すSprite を作成しましょう
final Sprite coin = new Sprite(x, y, width, height, coinTextureRegion)
{
      @Override
      protected void onManagedUpdate(final float pSecondsElapsed)
      {
            if (player.collidesWith(this))
            {
                setVisible(false);
                //Play pick up sound here
                addToScore(10);
                setIgnoreUpdate(true);
            }
           super.onManagedUpdate(pSecondsElapsed);
       }
};
 
coin.setCullingEnabled(true);
scene.attachChild(coin);

そして、この例では単にコインsprite がプレイヤー(別のエンティティ)と衝突しているかどうかをチェックして、衝突していればSprite を非表示にしてスコアを変更して音声を鳴らして以降の更新を無視するように設定します。基本的にはそれで全てです。 また、回転や透明などの視覚効果を追加するために ENTITY MODIFIERS を登録することもできます。