0

这就是我的目标:我有多个精灵来制作人物。第一个精灵(在n 个精灵的数组上,其中n是段数)是头部,其他精灵必须跟随它。所以,如果头部改变他的角度然后移动(在头部指向的方向),其他精灵必须跟随头部,就像蛇/蠕虫一样。我正在用 cocos2D 做这个,但不是那么相关,因为我认为我没有这个概念,因为我知道 cocos2D,但这不是问题(不是框架)。那么,我该怎么做呢?其他精灵怎么能完美地跟随头部?游戏示例是 App Store 上的 Death Worm 或 Super Mega Worm

如果需要,我可以发布我正在使用的代码(效果不好)和结果的图像,但我不知道这是否需要。

谢谢。

4

3 回答 3

1

我会简单地将每个部分的所有位置存储在一个数组列表/向量中。on Draw 根据游戏计算计算下一个头部位置,然后删除列表中最旧的 (pos==0) 项目并在列表中的位置绘制精灵。

如果这看起来与 Alexey 的回答相似,我很抱歉,我只是认为这可能是一个更简单的实现。

于 2012-08-20T14:40:33.557 回答
0

您将需要手动设置构成人物的每个精灵的位置。必须在重复调用的计划方法中计算和设置新位置。

sprite.position = ccp(newX,newY);

你也可以参考这个:Cocos2D set sprite position in relative to another sprite

于 2012-08-20T12:24:05.600 回答
0

为小动物的每个部分(包括头部)提供一组坐标。

如果它需要直线移动(不改变方向),则移动数组值,以便尾部(最后一个)段获取相邻段的坐标,该段获取其前段的坐标,依此类推,用于头部段你设置新的头部坐标,它等于旧坐标增加了方向向量 d:

dx dy direction  
 0 -1 up
 0 +1 down
-1  0 left
+1  0 right

如果你想改变方向,适当改变方向向量,然后做同样的数组移位和头部坐标更新。

于 2012-08-20T12:47:38.130 回答