为什么在onAreaTouched调用之后,正在调用onSceneTouchEvent()事件?

时间:2014-07-25 12:21:27

标签: android andengine

在AndEngine游戏中,我实现了onAreaTouched(),以便在点击精灵时,我会检测并做出相应的响应。另外,我已经实现了onSceneTouchEvent(),这样当用户点击屏幕时,我会移动角色。但我有一个问题。当用户点击某个精灵时,会调用onAreaTouched(),但在此之后也会调用onSceneTouchEvent(),从而导致针对一次点击的两个操作。我希望在点击精灵时,只应调用onAreaTouched(),反之亦然。我也尝试从onAreaTouched()返回true / false但它没有用。知道我错过了什么吗?

1 个答案:

答案 0 :(得分:3)

如果在onSceneTouchEvent()函数之前调用onAreaTouched()函数,则可以使用成员布尔值来控制是否要在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;
}