使用 Cocos2D 创建射击游戏子弹地狱风格的游戏。一根手指拖动移动船,角落里有火层。
从我的主层,我检测到 ccTouchesBegan、ccTouchesMoved 和 ccTouchesEnded。我将一个 CGPoint 传递给我的逻辑控制器。
如果着陆点位于 2 个“触发按钮”层之一内,那么我会触发触发事件。否则我为玩家飞船设置一个新位置。当触摸移动到火层区域之外时,我为玩家船设置了一个新位置。
问题:由于“触摸移动设置玩家位置”规则,将手指从火层内拖动到非火层空间会导致船跳到该点。
我怎样才能更好地构建这个?
也许我需要一个“触摸对象”数组,并在穿过火层边界时将它们无效。我觉得我在这里遗漏了一些关于触摸处理的重要概念,如果理解的话,它将提供我想要的控制,而不必破解一个“触摸对象”类,该类将您点击的位置与一系列位置进行比较。
请指教。谢谢!
(是的,我看到了:当层重叠时,如何将触摸处理限制在一层?。这并没有回答我的问题。rectContainsPoint 是我如何确定触摸是在火层内还是火层外)。