我在Android中使用andengine进行游戏,在这个游戏中,各种精灵(蛋)在屏幕上移动。我想独立地获取每个精灵的触摸事件,有时当一个精灵超过另一个精灵然后onAreaTouched( )给两个精灵的触摸事件,如果我在这里返回false或super.onAreaTouched(),如果我返回true,那么在另一个精灵注册的区域上移动的精灵无法给出触摸事件
那么什么是获得仅显示上限精灵的触摸事件的适当方法。
答案 0 :(得分:1)
您可以使用的另一种方法是使用IOnSceneTouchListener
方法的onSceneTouchEvent
。你可以得到X& Y来自pTouchEvent
参数,并检查是否有任何精灵包含它。
现在,如果您不知道,每个实体都有一个子列表(并且您的场景是一个实体)。 当一个实体自己绘制时,它也会调用子实体的绘制方法。从第一个子方法到最后一个方法(从列表中的顺序)调用儿童的绘制方法;因此,首先绘制列表中的第一个子项。最后一个是最后一个。 所以最后一个将始终覆盖它所绘制的任何其他实体。
因此,迭代现场子项列表,从最后一个子项到第一个子项。如果任何精灵包含触摸点,则让它处理事件并返回true 表示您已经消耗了该事件。