ios - 我可以在 iOS 上将普通的 OpenGL ES 2.0 与 Kobol2D/cocos2d 混合使用吗?

标签 ios cocos2d-iphone opengl-es-2.0 kobold2d

我正在使用 Kobold2D/cocos2D 为 iOS 制作 2D 游戏。现在我决定也尝试添加一些 3D 建筑(想想 GTA1/2 除了建筑之外一切都是 2D 的)。

我知道 OpenGL 是如何工作的,但我在尝试实现它时遇到了各种错误。

我的问题是: cocos2d 会阻止我使用正常的 OpenGL 调用吗?或者如果它正确完成,它应该工作正常吗?我发现的每个教程/示例都使用一些 cocos2d 包装器来混合 opengl 和 cocos..

如果您以前这样做过(将您自己的 OpenGL ES 2.0 代码与 cocos2d 混合使用),您能指出正确的方向吗?

最佳答案

只要您使用的是 cocos2d/Kobold2D v2.x,就可以使用 OpenGL ES 2.0。您可以覆盖/实现任何 CCNode 类的 -(void) draw 方法并破解。

只有一个警告:您应该更喜欢使用 cocos2d 提供的“ccStuffStuff”方法(例如 ccDrawColor)而不是 OpenGL ES 方法,因为出于性能原因和兼容性考虑,它们包装了一些幕后内容。检查任何现有的 cocos2d 绘图代码以获取示例。一个这样的例子是来自 cocos2d+Box2D 项目的 GLES-Render.cpp,或者 ccDrawingPrimitives.m 文件。

关于ios - 我可以在 iOS 上将普通的 OpenGL ES 2.0 与 Kobol2D/cocos2d 混合使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16468547/

相关文章:

java - 如何检测纹理何时被破坏

iphone - 如何将 UIView 隐藏和显示(动画)为 UIActionSheet?

android - 防止重定向触发应用/通用链接行为

ios - 如何将方法的返回类型编写为符合协议(protocol)+ swift的类

iphone - Cocos2d 中的 CCAction 帮助

android - OpenGL ES 2.0如何在体素世界中提高性能?

ios - 提交应用程序时出现广告标识符 (IDFA) 问题

c++ - objective-c 为什么 .mm 文件被认为是 int* 类型?

objective-c - 这个 Mtd 中的 .parent 的目的是什么?

android - 在 Android 上使用 OpenGL ES 2.0 中的着色器程序绘制轮廓