2017-01-17 2 views
-1

Мой актер в libgdx обычно рисует, как бы не работал inputlistener, я проверил, что я инициировал Gdx.input.setInputProcessor, и я уверен, что мои границы установлены правильно, поэтому, пожалуйста, помогите мне с этим вопросом.libgdx actor input не работает

Код:

Sprite playButton = new Sprite(new Texture(Gdx.files.internal("badlogic.jpg"))); 


public playBtn(){ 
    setBounds(playButton.getX(),playButton.getY(),getWidth(),getHeight()); 
    setTouchable(Touchable.enabled); 
    addListener(new InputListener(){ 
     @Override 
     public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { 
      Gdx.app.log("Example", "touch started at (" + x + ", " + y + ")"); 
      return false; 
     } 
     @Override 
     public void touchUp (InputEvent event, float x, float y, int pointer, int button) { 
      Gdx.app.log("Example", "touch done at (" + x + ", " + y + ")"); 
     } 

    }); 



} 

@Override 
public void draw(Batch batch, float parentAlpha) { 
    playButton.draw(batch); 


} 

@Override 
public void act(float delta) { 
    super.act(delta); 
} 

Основной класс:

public MenuState(GameStateManager gsm){ 
    super(gsm); 


    ScreenViewport screenViewport = new ScreenViewport(); 
    menuStage = new Stage(screenViewport); 
    playBtn playButton= new playBtn(); 
    menuStage.addActor(playButton); 
    Gdx.input.setInputProcessor(menuStage); 



    background = new Sprite(new Texture("MenuBG.png")); 
    project = new Project(); 
    background.setSize(project.WIDTH,project.HEIGHT); 


} 


@Override 
protected void handleInput() { 

} 

@Override 
public void update(float dt) { 
    handleInput(); 

} 



@Override 
public void render(SpriteBatch sb) { 



    sb.begin(); 
    background.draw(sb); 
    sb.end(); 
    menuStage.act(Gdx.graphics.getDeltaTime()); 
    menuStage.draw(); 

} 
+0

"inputlistener не работает" не поможет, что много. Вы можете объяснить, каким образом он не работает. Делает ли он неправильные вещи? Разве это вообще не называется? Кроме того, вы можете немного очистить свой код, чтобы его было легче читать. – Thomas

+0

@Thomas Да, конечно, я отредактирую его еще раз, и inputlistener не будет вызван – icedbluw

ответ

0

попробовать:

setBounds(playButton.getX(), playButton.getY(), playButton.getWidth(), playButton.getHeight()) 
Смежные вопросы