如何使用 Cocos2d 制作这样的游戏

Posted

技术标签:

【中文标题】如何使用 Cocos2d 制作这样的游戏【英文标题】:How would one use Cocos2d to create a game like this 【发布时间】:2010-06-17 20:47:06 【问题描述】:

http://itunes.apple.com/us/app/angry-birds/id343200656?mt=8&ign-mpt=uo%3D6

所以我开始在 iphone 上进行所有游戏开发,我决定开始使用 Cocos2d 作为我的启动引擎。

现在我有了一个目标,我选择了愤怒的小鸟作为我想学习构建什么样的游戏玩法的最初目标。这将成为市场发布游戏。这完全仅用于学习目的。

所以开始我的问题是:

使用 Cocos2d 可以实现这样的目标吗? 我将如何为此构建物理? 如何像在 cocos2d 中那样滚动屏幕? (任何示例代码都会很棒)

这只是开始。如果您有任何特殊问题,请添加到此问题中。


还有一些我想知道的事情:

动画精灵。如何创造它?这是 Cocos2d 的功能还是我可以使用 UIImageView? 拖放支持。他们如何检测到我在拖鸟? 更多的图形问题:它们如何为“带状拉伸”效果设置动画?

干杯


进展

所以我已经能够在 Cocos2d 和 box2d 中设置一个世界,现在我有一些可以碰撞和模拟物理的块。现在我遇到了一些我认为可以通过进一步的提示/帮助/教程来解决的问题。

    如何使精灵沿弧线移动?就像你扔鸟时它会沿着曲线移动。我该如何计算呢?这个逻辑到哪里去了? (内置还是需要编码?)

    我如何创建一个世界(地图),其中某些块是静态的并且某些块是可破坏的?我应该研究 cocos2d 中的 SVG 支持吗?

    如何像在愤怒的小鸟中那样模拟碰撞?

干杯。

【问题讨论】:

【参考方案1】:

    使用 cocos2d 绝对可以制作像愤怒的小鸟这样的游戏。

    您绝对应该使用 box2d 或 Chipmunk。我会推荐 box2d,因为我发现它更容易理解。基本思想是为每个精灵创建一个 box2d 主体,例如鸟儿和结构的碎片都是独立的身体。

    基本思想是创建一个比包含所有内容的屏幕更大的层,然后移动该层。要允许通过触摸滚动,您需要在触摸开始/移动/完成方法中跟踪触摸移动的距离并相应地移动图层。您还可以使用CCFollow 操作来模拟摄像机在空中跟随鸟。

编辑您的其他问题:

    Sprite 动画使用CCSpriteSheet 处理。您可以在programming guide 中查看更多信息。

    您可以通过使用触摸位置来检测拖动小鸟的位置,这在您编写触摸方法时相当简单。同样,请参阅programming guide。

    我不确定拉伸表带的最佳方法。一种方法是使用多个精灵(带子的每一侧一个,一个用于中间的“小袋”)并根据需要拉伸/旋转它们。

【讨论】:

谢谢科林。添加了更多问题。【参考方案2】:

如何制作像愤怒的小鸟这样的游戏?

您可以参考:http://goodsteven.blogspot.com/2010/10/how-to-make-game-like-angry-birds.html

BeBeWoo Lite 工具/库使用:

Cocos2D for iPhone (0.99.4) (ObjC) Box2d (C++) 用于关卡数据的 XML 或 PList- 关卡编辑器(是否包含在游戏中) 字体编辑器:Hiero Sprite 编辑器:Zwopte

【讨论】:

【参考方案3】:

一些想法:

在 cocos2d 中看起来可以实现。 cocos2d 集成了两个物理引擎:box2d 和 ChimpMunk。您应该尝试其中一种。 您可以查看有关视差滚动的示例(或文档),以实现一些外观,然后查看 cocos2d 提供的触摸管理。

作为旁注,开发 cocos2d 的人出售 Sapus Tongue(他的游戏)的源代码,这可能对您开始有用。

【讨论】:

以上是关于如何使用 Cocos2d 制作这样的游戏的主要内容,如果未能解决你的问题,请参考以下文章

如何在 cocos2d iphone 游戏中保存高分和加载高分

如何使用cocos2d

如何优化cocos2d程序的内存使用和程序大小

iphone游戏灯光效果与cocos2d

如何在 cocos2d 环境之外实现 cocos2d 游戏的虚拟摇杆?

cocos2d如何使加载图像持续更长时间?