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