0

TouchUpイベントで画面を変更するLibGDX 0.9.8バージョンに単純なボタンを実装しようとしています。ただし、Eclipse では、TouchUp メソッドの上書きに黄色の下線が表示され、どこにも使用されていないことが示されます。

public void resize(int width, int height) {

    //Setting up stage failsafe
    if(_stage == null){
        _stage = new Stage(width, height, true);
    }

    _stage.clear();

    Gdx.input.setInputProcessor(_stage);

    TextButtonStyle style = new TextButtonStyle();
    style.up =  _buttonSkin.getDrawable("buttonUp");
    style.down = _buttonSkin.getDrawable("buttonDown");
    style.font = _font;

    _startButton = new TextButton("START GAME" , style);
    _exitButton = new TextButton("EXIT", style);

    ///
    ///PLACING BUTTONS
    ///

    //start button
    _startButton.setWidth(Gdx.graphics.getWidth() / 3);
    _startButton.setHeight(Gdx.graphics.getHeight() / 4);

    _startButton.setX((Gdx.graphics.getWidth() / 8) * 3);
    _startButton.setY((Gdx.graphics.getHeight() / 5) * 3);

    _startButton.setTouchable(Touchable.enabled);

    _startButton.addListener(new InputListener(){

        public boolean touchUp(InputEvent event, float x, float y, int pointer, int button) {
                _game.setScreen(new World(_game));
                System.out.print("up");
                return true;
        }

    });


    //adding buttons to scene
    _stage.addActor(_startButton);
    //_stage.addActor(_exitButton);   

Web でいくつかの調査を行ったところ、いくつかのバージョンの LibGDX にはこのイベント メソッドが存在しないという投稿がいくつかあったため、ライブラリを確認したところ、そこに目的のメソッドが見つかりました。

In InputListener class :/** Called when a mouse button or a finger touch goes up anywhere, but only if touchDown previously returned true for the mouse
 * button or touch. The touchUp event is always {@link Event#handle() handled}.
 * @see InputEvent */
public void touchUp (InputEvent event, float x, float y, int pointer, int button) {
}

誰でも私が間違っていることを見ることができますか? com.badlogic.gdx.scenes.scene2d.ui.TextButton の textbutton を使用しています。

4

1 に答える 1

2

libgdx javadocsから、探しているメソッドは.-

public boolean touchUp(int screenX, int screenY, int pointer, int button)

パラメータなしInputEvent event。その余分なパラメーターを削除し、メソッドを として宣言し、@PT が提案したようpublicにタグを追加してください。@Override

@Override
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
    super.touchUp(screenX, screenY, pointer, button);
    // Do your stuff here
} 
于 2013-09-23T18:40:11.193 に答える