CCParallax为移动的背景

时间:2011-10-31 21:52:51

标签: objective-c cocos2d-iphone

我有一张平铺地图,我想制作熔岩湖。我希望在背景上对角缓慢地循环某种熔岩纹理图像。我可以使用四个960x640图像并将它们全部对角移动等等。但是当我这样做时,每个图像之间会出现黑/白线......

......有人建议我“CCParallax”。我从来没有使用它,也不确定它是否真的能达到我想要的效果。

另请注意,当玩家在地图上移动时,视差也需要模拟等等。

所以我的问题是,你会为这种效果做些什么?四个循环图像或“CCParallax”?

1 个答案:

答案 0 :(得分:1)

CCParallaxNode非常有限,因为您无法在不修改类的情况下指定无限的视差滚动。它也不太适合您的用例。

使用四个960x640图像是浪费。只是为了在背景下制造一些湖泊,这是过度的,会对性能产生负面影响。

解决方案取决于湖泊的大小。例如,如果这些只是1或3x3平铺大小,您可以在每个湖底下添加纹理精灵。另一方面,如果你的瓷砖地图主要由几个狭窄的通道组成,而其余的是熔岩湖,那么你需要采用不同的方法。

您可能希望try GL_REPEAT在定义的区域上重复单个精灵的纹理。这允许您使用相对较小的纹理,例如64x64,将在您指定的矩形上重复。

然后,您可以修改每个帧的精灵位置以滚动纹理。每次精灵在水平或垂直方向上移动64个像素时,从精灵的位置减去64个像素(sprite.contentSize.width)以将其重置回原始状态。这意味着精灵永远不会从任何方向的初始位置移动超过64像素,但你仍然可以平滑滚动。