2012-01-11 43 views
0

我正在android中使用andengine制作游戏,在这个游戏中,各种精灵(蛋)在屏幕上来回移动。我想要独立地获取每个精灵的触摸事件,有时当一个精灵在另一个精灵之上,那么onAreaTouched()会给出两个精灵的触摸事件,如果我在这里返回false或super.onAreaTouched(),如果我在这里返回true,那么一个精灵在注册另一个区域精灵无法给触摸事件在游戏中使用andengine获取适当的触摸事件在游戏中的多个精灵

那么什么才是合适的方式来获得只有上面显示的精灵的触摸事件。

回答

1

您可以使用的另一种方法是IOnSceneTouchListener,使用onSceneTouchEvent方法。您可以从pTouchEvent参数中获取X & Y,并检查是否有任何精灵包含它。

现在,如果你不知道,每个实体都有一个孩子的列表(而你的场景是一个实体)。 当一个实体吸引自己时,它也会调用子女的绘制方法。儿童的绘画方法从第一个孩子的方法被调用到最后(作为他们在列表中的顺序);因此,列表中的第一个孩子首先被绘制。最后一个是最后绘制的。 所以最后一个将总是覆盖它绘制的任何其他实体。

因此,从最后一个孩子到第一个孩子迭代场景儿童列表。如果任何精灵包含触摸点,让它处理该事件,并且返回true以表示您消耗了该事件。

+0

谢谢jong我会试试看。 – 2012-01-16 10:01:43