Cocos2d iphone Cocos2d游戏中Box2d的碰撞简化

Cocos2d iphone Cocos2d游戏中Box2d的碰撞简化,cocos2d-iphone,box2d,Cocos2d Iphone,Box2d,考虑一个简单的Cocos2d游戏,由一个1x20网格上的五个水平多米诺骨牌组成(宽度为20个正方形,每个多米诺骨牌的宽度为两个,多米诺骨牌不能重叠)。多米诺骨牌可以在网格中水平滑动。因为它们被约束到栅格,所以它们的垂直位置是恒定的 基本移动的逻辑很简单:轻敲和拖动移动一个domino,直到CGRectIntersectsRect确定何时击中另一个domino。此时,多米诺骨牌刚刚将快照移动到位 “先进”运动的逻辑更为复杂。在这里,把一个多米诺骨牌推到另一个多米诺骨牌上,应该像两个连续的火车车厢一

考虑一个简单的Cocos2d游戏,由一个1x20网格上的五个水平多米诺骨牌组成(宽度为20个正方形,每个多米诺骨牌的宽度为两个,多米诺骨牌不能重叠)。多米诺骨牌可以在网格中水平滑动。因为它们被约束到栅格,所以它们的垂直位置是恒定的

基本移动的逻辑很简单:轻敲和拖动移动一个domino,直到
CGRectIntersectsRect
确定何时击中另一个domino。此时,多米诺骨牌刚刚将快照移动到位

“先进”运动的逻辑更为复杂。在这里,把一个多米诺骨牌推到另一个多米诺骨牌上,应该像两个连续的火车车厢一样移动两个多米诺骨牌,只要它们有空间。显然,三、四等多米诺骨牌可以这样移动

虽然高级动作代码更复杂,但我不认为这是没有希望的。我草拟了几个概念:

  • “后domino”是domino用户正在拖动的
  • “前多米诺骨牌”位于所有移动多米诺骨牌的前面,决定何时停止,何时向组中添加另一个多米诺骨牌等
  • “移动多米诺骨牌”是“列车”中所有多米诺骨牌的组合
我认为这种方法是可行的。然而,我不相信这是最简单的方法,因为有很多角落案例的可能性很高。例如,将三个连续的多米诺骨牌捕捉到位可能需要逻辑来防止捕捉后的重叠、捕捉后的间隙等

如何使用Box2d避免一些复杂的逻辑?


我认为一个简单的物理引擎完全不需要前多米诺骨牌、后多米诺骨牌等概念。因此我正在考虑这种方法。

多米诺骨牌应该会掉下来,对吗?这意味着它们将旋转。这意味着您无论如何不能使用CGRectIntersect,因为它不处理旋转的矩形。@LearnCos2D多米诺骨牌不会掉落或旋转。他们只是坐在一个1x20的格子里,当用户拖动他们时,他们会左/右移动。啊,你是说那些上面有数字的多米诺骨牌?在这种情况下,避免物理,它只会使事情变得更加困难(移动到不应该移动的地方)etc@LearnCocos2D我所说的多米诺骨牌就是一个一个单位高、两个单位宽的矩形。他们不需要数字。我想物理会有用的。捕捉到网格可能需要一些额外的逻辑。