2017-02-22 2 views
1

LibGDXでは、私は自分のゲーム用のテキストアニメーションを作りたいと思います。したがって、私のラベルは時間とともに大きくなることを願っています。しかし、私がscaleTo()メソッドを使用すると、何も起こりませんが、moveTo()のような他のアクションは正常に動作します。LibGDXのラベルにActions.scaleTo()を追加します

label1 = new Label("Test text", new Label.LabelStyle(font, Color.BLACK)); 
label2.addAction(Actions.parallel(Actions.moveTo(500, 300, 2.0f),Actions.scaleTo(0.1f, 0.1f,2.0f))); 

label2 = new Label("Test text 2", new Label.LabelStyle(font, Color.BLACK)); 
label2.addAction(Actions.parallel(Actions.moveTo(500, 300, 2.0f),Actions.scaleTo(0.1f, 0.1f,2.0f))); 

stage.addActor(label1); 
stage.addActor(label2); 

ラベルの縮尺を変更するにはどうすればよいですか?前もって感謝します!

+0

投票を正当化した人は、投票してもらえますか?私は初心者ですが、なぜこの質問は悪いのですか? – erik4thewinners

+0

スケーリングを有効にするには、ラベルのsetTransform(true)を呼び出します。ほとんどのウィジェットでは、バッチフラッシングが発生するため、デフォルトでオフになっています。 – Tenfour04

+0

setTransform()は、クラスGroupのメソッドです。ラベルはこのクラスから拡張されません。だから、この方法はラベルには利用できません... – erik4thewinners

答えて

3

パフォーマンス上の理由から、ほとんどのscene2d.uiグループは、デフォルトで変換をfalseに設定しています。詳細については

あなたが拡張したい場合は、1つのウィジェットのサイズや配置を設定するために有用であるコンテナを使用することができます
https://github.com/libgdx/libgdx/wiki/Scene2d.ui#rotation-and-scale

を確認することができます。

private Container<Label> container; 

@Override 
public void create() { 
    stage=new Stage(); 

    Label label1 = new Label("Test text", new Label.LabelStyle(font, Color.BLACK)); 

    container=new Container<Label>(label1); 
    container.setTransform(true); // for enabling scaling and rotation 
    container.size(100, 60); 
    container.setOrigin(container.getWidth()/2, container.getHeight()/2); 
    container.setPosition(100,200); 
    container.setScale(3); //scale according to your requirement 

    stage.addActor(container); 
} 

@Override 
public void render() { 
    super.render(); 

    Gdx.gl.glClearColor(1,1,1,1); 
    gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

    stage.draw(); 
    stage.act(); 
} 

ラベルの代わりにコンテナにアクションを追加します。

container.addAction(Actions.parallel(Actions.moveTo(500, 300, 2.0f),Actions.scaleTo(0.1f, 0.1f,2.0f))); 
+1

問題は解決しました、ありがとう! – erik4thewinners

1

ラベルはスケーリングを直接サポートしません。これを簡単に解決するには、コンテナにラベルを入れ、コンテナ上にsetTransform(true)を置き、スケールアクションをコンテナに追加します。

関連する問題