2012-09-19 7 views
13

Mam problemy z uzyskiwaniem informacji o zdarzeniach dotyczących pracy z moim Actor w libgdx. Używam nocnych buildów.Nie można uzyskać zdarzeń działających w moim libgdxie Aktor

Moja etapem jest konfiguracja w sposobie a Screen podklasy show():

stage = new Stage(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), true); 
Gdx.input.setInputProcessor(stage); 
TestActor actor = new TestActor(); 
stage.addActor(actor); 

A moja klasa aktor wygląda następująco:

class TestActor extends Actor { 
    private Sprite sprite; 
    private TextureAtlas atlas; 

    public TestActor() { 
     atlas = new TextureAtlas(Gdx.files.internal("textures/images-packed.atlas")); 
     sprite = atlas.createSprite("logo-96"); 

     setTouchable(Touchable.enabled); 
     addListener(new InputListener() { 
      public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { 
       Gdx.app.debug(TestGame.TAG, "TestActor.touchDown()"); 
       return true; // must return true for touchUp event to occur 
      } 
      public void touchUp (InputEvent event, float x, float y, int pointer, int button) { 
       Gdx.app.debug(TestGame.TAG, "TestActor.touchUp()"); 
      } 
     }); 
    } 

    @Override 
    public void draw(SpriteBatch batch, float parentAlpha) { 
     Color color = getColor(); 
     batch.setColor(color.r, color.g, color.b, color.a * parentAlpha); 
     batch.draw(sprite, getX(), getY()); 
    }    
} 

Zdarzenia nie wydają się ognia. Co dziwne, użyłem wbudowanych widżetów interfejsu użytkownika, takich jak TextButton i mogę sprawić, że te zdarzenia będą uruchamiane poprawnie. Czy ktokolwiek może zobaczyć, co robię źle?

Odpowiedz

16

Powinieneś również ustawić wartość graniczną dla swojego aktora. najlepszy sposób, żeby to zrobić (jeśli chcesz taki sam rozmiar jak teksturą) dodać te linie do konstruktora:

setWidth(sprite.getWidth()); 
setHeight(sprite.getHeight()); 
setBounds(0, 0, getWidth(), getHeight()); 

zawiadomienie można także ustawić lokalizację granicach z pierwszych 2 parametrów.

+0

Tak! Dziękuję Ci! Zastanawiałem się, czy ma coś podobnego. –

Powiązane problemy