【问题标题】:How to speed up iPhone game application?如何加速 iPhone 游戏应用程序?
【发布时间】:2010-12-07 16:59:10
【问题描述】:

我正在使用一个 UIView 和 GraphicsContext 开发 iPhone 游戏应用程序。以下是我正在做的事情:

UIGraphicsBeginImageContext(CGSizeMake(320, 480));
CGContextRef contextRef = UIGraphicsGetCurrentContext();

使用 contextRef 绘图:

UIImage* imageContext = UIGraphicsGetImageFromCurrentImageContext();

... call [self setNeedsDisplayInRect];

(void)drawRect:(CGRect)rect {

        [imageContext drawAtPoint:CGPointMake(0, 0)];
        // it takes a lot time (about 0.120 seconds) to draw imageContext on iPhone 4 device....
}

问题是绘制 imageContext 需要很多时间。大约需要 0.12 秒或更长时间。在 iPhone 设备上,绘制图像需要很长时间。因此,我正在寻找一种解决方案来解决问题或在更短的时间内绘制图像。

有人知道如何减少时间吗? 如何在 iPhone 上开发游戏?在 App Store 中,有很多游戏。每场比赛都有适当的速度。

请推荐我用一个UIView开发游戏的方法或例子。

提前致谢!

【问题讨论】:

  • 一般来说,我同意下面的 Bonegh 和 lm2s 的观点,即您应该考虑为您的游戏使用游戏引擎,因为它们在 API 和性能方面都更适合游戏需要能够做的事情。也就是说,我想知道您为什么要在 drawRect: 之外绘制图形上下文。通常,您应该在 drawRect: 中进行绘图,该上下文已经为您设置好了。

标签: iphone image-processing drawing cgcontext


【解决方案1】:

使用框架,cocos2d 是 iphone 上用于 2d 游戏的最好和最常用的框架之一。还有 Unity 和其他一些 3d 框架,如果您使用 UIView 和 CGContextRef,我猜您正在制作 2d 游戏。

http://www.cocos2d-iphone.org

这个框架使用 OpenGLES 来渲染精灵,它带有 2 个不同的物理引擎可供使用(我更喜欢 box2d),并且有一个非常繁忙和有用的社区可以从中获得帮助。

祝你好运!

【讨论】:

  • 还有 Sparrow 2d 引擎 (sparrow-framework.org),“他们”说它易于理解和使用。
  • 两者都用过,我仍然推荐 cocos2d,纯粹是因为你可以同时使用 box2d 和花栗鼠物理引擎,一个繁华的社区,在谷歌上可以找到大量的教程以及大量的教程可下载工具来帮助您创建游戏。例如Zwoptex、Particle Creator、LevelSVG、Inkscape、完整注释的示例文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多