2017-12-21 18 views
0

fadeInアクションを使用してbitmapfontで書き込まれた単純なメッセージを含むアクタをアニメートしようとしていますが、動作しません。Libgdx scene2dのBitmapFontアニメーション

ここに私のコードです。

public class Message extends Actor{ 

     BitmapFont font; 
     String message; 
     float x, y; 

     public Message(BitmapFont font, String message, float x, float y) { 
      this.font = font; 
      this.message = message; 
      this.x = x; 
      this.y = y; 
     } 

     @Override 
     public void draw(Batch batch, float parentAlpha) { 
      Color color = getColor(); 
      batch.setColor(color.r, color.g, color.b, color.a * parentAlpha); 
      font.setColor(color.r, color.g, color.b, color.a * parentAlpha); 
      font.draw(batch, message, x, y); 
     } 
    } 

ボタンをクリックすると、メッセージが表示されるはずですが、それは唯一のアニメーションなしで表示されています。同じステージの作業罰金の

button.addListener(new ClickListener() { 
      @Override 
      public void clicked(InputEvent event, float x, float y) { 
       BitmapFont font = new BitmapFont(Gdx.files.internal("myfont.font")); 
       Message message = new Message(font, "Tap Here", 100, 20); 
       stage.addActor(message); 
       message.addAction(Actions.fadeIn(5)); 
      }}); 

他の俳優アニメーション私が呼んでいるよう:

stage.act(delta); 
stage.draw(); 
+0

を* * fadeIn **>このアクションが開始されたときのアルファから1のアルファへのトランジションは、アニメーションなしで表示されます。 – Aryan

+1

新しいビットマップオブジェクトを作成する各タップは良い解決策ではありませんのでご注意ください。 – Aryan

答えて

0

あなたがフェードインのアクションを追加する前にゼロにメッセージ俳優のアルファを設定する必要があります。

button.addListener(new ClickListener() { 
      @Override 
      public void clicked(InputEvent event, float x, float y) { 
       BitmapFont font = new 
       BitmapFont(Gdx.files.internal("myfont.font")); 
       Message message = new Message(font, "Tap Here", 100, 20); 
       message.getColor().a = 0f; // add this line 
       stage.addActor(message); 
       message.addAction(Actions.fadeIn(5)); 
      }}); 
関連する問題