2014-07-25 85 views
2

在一個AndEngine遊戲中,我實現了onAreaTouched(),這樣當一個精靈被點擊時,我會檢測並響應。另外,我實施了onSceneTouchEvent(),這樣當用戶點擊屏幕時,我會移動角色。但我有一個問題。當用戶點擊某個精靈時,onAreaTouched()被調用,但之後onSceneTouchEvent()也被調用,導致針對一次敲擊產生兩個動作。我希望在點擊精靈時,只應調用onAreaTouched(),反之亦然。我也嘗試從onAreaTouched()返回true/false,但它沒有奏效。任何想法我錯過了什麼?爲什麼在onAreaTouched調用之後,onSceneTouchEvent()事件被調用?

回答

3

如果onAreaTouched()函數正在onSceneTouchEvent()函數調用之前,你可能只是有一個成員布爾控制你是否要運行onSceneTouchEvent()的代碼

OnAreaTouched() 
{ 
    mIsSpriteTouched = true; 
    // then run all relevant code when the sprite is touched 
} 

onSceneTouchEvent() 
{ 
    if (!mIsSpriteTouched) 
    { 
     //execute code that should run when the sprite isn't touched 
    } 

    mIsSpriteTouched = false; //reset for next event; 
} 
+0

是的,我如果發動機提供的其他解決方案不起作用,它也會這樣做。但是謝謝! –

相關問題