标签:
下面我们看看HelloWorldScene.cpp具体的实现代码如下:
上述代码第①、⑧、⑨行分别定义了三个触摸事件函数,函数的参数touch是在层中的触摸点,event是触摸事件,我们不能使用8.1.3一节的auto target = static_cast<Sprite*>(event->getCurrentTarget())语句获得要点击的精灵,事实上event->getCurrentTarget()函数获得的是事件源,这里的事件源是当前的层,而不是精灵对象。那么我们如何判断是否点击了哪个精灵呢?我的办法是每一个精灵逐一判断。所以,我们在第②~⑤行代码判断精灵BoxA是否被点击,在第⑥~⑦行代码判断精灵BoxB是否被点击。
代码第③行用到了isTap函数,我们在第⑩行定义了该函数,它是用来判断触摸点是否在精灵内,这个判断主要是通过Rect的containsPoint函数判断的。函数中第?行代码获取触摸点相对精灵对象本地坐标。第?行代码是获得精灵对象的尺寸。第?行代码是通过精灵对象的尺寸创建Rect变量。第?行代码rect.containsPoint(locationInNode)是判断是否触摸点在精灵对象范围。
标签:
原文地址:http://www.cnblogs.com/iOS-Blog/p/3870533.html