我们在stage上触摸的任一点都会有hit+ID的输出,即系统不经任何判断,只要stage捕捉到触摸事件,就会通知其内的所有Actor,调用所有子Actorhit()方法

stage中的Actor队列的末尾的Actor最先响应,然后逐步是队列前部的Actor

 

 

事实上,传入的这个参数是触摸点相对于Actor的坐标。除了hit()方法,touchDragged(),touchMoved(),touchDown(),touchUp()这四个方法中传入的x,y参数也是触摸点相对于Actorx,y值,而不是触摸点的绝对坐标。

 

touchDragged(),touchMoved(),touchDown(),touchUp()这四个方法呢?

 
我直接揭晓答案好了。事实上,这四个方法的触发需要hit()方法的配合,我们可以看到默认的hit()方法返回的是null,而当经过相应的判定之后,我们在hit()方法中返回这个Actor实例
 
  if(arg0>0&&arg1>0&&arg0<tx.getWidth()&&arg1<tx.getHeight())
  •                         return this;
  •                
  •                 return null;

 

这里我们将这个Actor看作是一个和图片资源actor.png一样大的矩形。运行一下,看看效果,我触摸了其中一个ExampleActor

 

实际上我是触摸了第二个ExampleActor,即example2,因此我们可以看见example2touchDown的输出,而看不见第一个的,这就实现了一个简单的触摸检测