2012-09-19 11 views
13

में काम करने वाली घटनाएं नहीं मिल सकतीं मुझे libgdx में Actor के साथ काम करने वाली घटनाएं मिल रही हैं। मैं रात का निर्माण कर रहा हूँ।मेरे libgdx अभिनेता

मेरे चरण में एक Screen उपवर्ग के show() विधि में सेटअप है:

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

और मेरे अभिनेता वर्ग की तरह दिखता है:

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()); 
    }    
} 

घटनाओं आग नहीं है। विचित्र रूप से पर्याप्त, मैंने TextButton जैसे अंतर्निहित UI विजेट्स का उपयोग किया है और उन घटनाओं को ठीक से ठीक कर सकते हैं। क्या कोई देख सकता है कि मैं क्या गलत कर रहा हूं?

उत्तर

16

आपको अपने अभिनेता को बाउंड भी सेट करना चाहिए। सबसे अच्छा तरीका यह करने के लिए (यदि आप अपने बनावट के रूप में एक ही आकार चाहते हैं) अपने निर्माता ये पंक्तियां जोड़ें:

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

नोटिस आप भी पहले 2 मानकों के साथ सीमा से स्थान निर्धारित कर सकते हैं।

+0

हां! धन्यवाद! मैं सोच रहा था कि क्या उन पंक्तियों के साथ कुछ था। –