2013-03-23 52 views
0

我想執行的函數,只有當上我的舞臺演員被觸摸.. 但問題是,被執行的功能,不論在那裏它觸及了舞臺.. 即使其在執行函數舞臺上一些隨機的地方感動.. 我要當演員是touched..I具有的setBounds功能僅執行......不過其沒有工作..觸摸事件不工作properly..libgdx

public Restart() 
    { 
     atlas = new TextureAtlas(Gdx.files.internal("pages-info.atlas")); 
     sprite = atlas.createSprite("restart"); 
     this.touchable = true; 
     sprite.setBounds(x, y, sprite.getWidth(), sprite.getHeight()); 

    } 



public void draw(SpriteBatch batch,float parentAlpha) 
    {  
     batch.draw(sprite, x, y , width, height ); 

    } 



@Override 
    public Actor hit(float x, float y) 
    { 
     // TODO Auto-generated method stub 
     Gdx.app.log(FirstGame.LOG, " restart working "); 
     return null; 
    } 
+0

您的代碼與您所問的問題不符。如果您想在演員被觸摸時獲得回調,那麼您只需要爲該演員添加一個偵聽器。 – Jyro117 2013-03-24 23:59:23

回答

1

hit方法沒有做你認爲它做的事。 hit方法用於測試如果當前actor與給定的x,y相交,所以它總是被調用。 (如果因爲演員不是長方形而想要扔掉「點擊」,它很有用。)

使用addListener添加事件偵聽器來接收觸摸事件並對它們做出反應。

+0

我試過inputlistener ...我認爲它在我使用的版本中取出.. :( 我只需要觸發一個功能,當我的演員被觸動時。哪種方法最簡單呢? – Silentasssasssin 2013-03-25 10:32:30

+0

閱讀此內容:https://code.google.com/p/libgdx/wiki/scene2d#Event_system。'InputListener'一直存在,所以可能還有其他一些問題。 – 2013-03-25 17:58:59

+0

我使用了按鈕和clicklistener ... 得到了我是什麼尋找..謝謝你的回覆很多PT .. 非常感謝.. – Silentasssasssin 2013-03-26 16:59:30