2016-05-28 4 views
0

私はscene2dに問題があります。私はprogramatically(jsonファイルなしで)TextButtonを作成し、何らかの理由で、isPressed()は私がそれを押しているときにtrueを返しません。それだけでなく、私はTextButtonStyleのdownFontColorを設定しますが、何もしません。これは初めてscene2dを使用しているので、まだ新しいです。私はアンドロイドでテストしています。TextButton isPressed()が動作しません

TextButtonを拡張するカスタムクラスを使用しますが、これは問題とは関係ありません。空のクラスです。 metsionではなく、テキストボタンでテストしました。相続人のクラス:私はステージを作成

のMainMenu、:

public MainMenu(Main main) { 

    this.main = main; 

    font_neutral = Tools.generateFont(Gdx.files.internal("Fonts/Android.ttf"), Color.WHITE, 150); 

    initViewport(); 

    //Scene2D 
    GlyphLayout glyphLayout = new GlyphLayout(); //Used for getting width/height of textButton. Set text, then get width 

    TextButton.TextButtonStyle style = new TextButton.TextButtonStyle(); 
    style.font = font_neutral; 
    style.fontColor = new Color(1, 1, 1, 1); 
    style.downFontColor = new Color(40, 130, 100, 1); 
    style.checkedFontColor = Color.BLUE; 

    CustomTextButton button_play = new CustomTextButton("Play", style); 
    glyphLayout.setText(style.font, "Play"); 
    float x = camera.viewportWidth/3 - glyphLayout.width/2; 
    float y = camera.viewportHeight/2 - glyphLayout.height/2; 
    button_play.setPosition(x, y); 
    button_play.setTouchable(Touchable.enabled); 

    stage = new Stage(viewport); 
    stage.addActor(button_play); 
} 

@Override 
public void show() { 

} 

public void update(float delta) { 

    stage.act(delta); 


} 

@Override 
public void render(float delta) { 
    update(delta); 

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

    stage.draw(); 

} 

おかげで再び!

+0

正確に '.isPressed()'を使用していますか?私はあなたのコードでそれが表示されません。 – AkashBhave

答えて

1

StageInputProcessorです.LibGDXにStageを聞く必要があります。 Stageを初期化した後にGdx.input.setInputProcessor(stage)を入力してください。

+0

もう一度私を助けてくれてありがとう!これらの小さなものは私を得る傾向があります – Wyatt

+0

しかし、まだ問題があります。クリックは機能しますが、TextButtonStyleの色を変更しても、元のフォントの色がそのまま残ります。 TextButtonStyle.colorを設定しても、それはまだ黒だけです。 – Wyatt

+0

興味深いことに、あらかじめ作られた色(たとえば、Color.GREEN)を使用している場合にのみ、スタイルの色を設定することができます。新しいColor()を作成すると機能しません。非常に奇妙な。 – Wyatt

関連する問題