【发布时间】:2010-05-22 22:57:14
【问题描述】:
我正在用 cocos2d 制作 iPhone 游戏。
我想知道如何让相机/视图跟随特定的精灵?
我会使用 CCCamera 类吗?
【问题讨论】:
标签: iphone objective-c cocos2d-iphone
我正在用 cocos2d 制作 iPhone 游戏。
我想知道如何让相机/视图跟随特定的精灵?
我会使用 CCCamera 类吗?
【问题讨论】:
标签: iphone objective-c cocos2d-iphone
是的,CCCamera 可以。然而,它有一些缺点,使其不适用于某些用途。相对于该精灵分别移动所有其他对象的图层可能是更好的解决方案。这取决于游戏。
首先,了解不同的方法及其缺点,您可以从这个 cocos2d 论坛帖子中获得很多信息: http://www.cocos2d-iphone.org/forum/topic/5363
如果你能描述你的游戏是关于什么的,以及为什么你需要将相机连接到那个精灵上,那将会很有帮助。
例如,如果您正在考虑像 Canabalt 这样的正在运行的游戏,我不会使用相机滚动整个世界,而是滚动与玩家(朝向他)相关的所有内容,而玩家几乎保持在相同的位置运行时的 x 坐标。 iCopter 游戏是完全不移动相机的完美示例,它们基本上是 Canabalt 的简化版本。请注意,玩家精灵始终保持在完全相同的 x 坐标上,而游戏世界只是滚动
在我看来,如果你有一个玩家可以在各个方向穿越的大型游戏世界,并且对象的数量太多并且还向各个方向移动,那么滚动相机本身是最有意义的,所以更新他们的单独定位每一帧将既过大又容易出错。而且由于游戏世界如此庞大,您可能希望使用相机的位置来限制在屏幕上绘制的内容。
【讨论】:
使用 CCFollow 操作
像这些:-
[self runAction:[CCFollow actionWithTarget:(u r hero) worldBoundary:CGRectMake(0,0,1050,350)]];
会有帮助的
【讨论】: