2010-12-07 56 views
1

我正在开发使用一个UIView和GraphicsContext的iPhone游戏应用程序。在初级讲座是我在做什么:如何加快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开发游戏的方法或示例。

提前致谢!

+0

一般来说,我同意下面的Bonegh和lm2s,你应该考虑为你的游戏使用游戏引擎,因为它们在游戏需要能够做到的API和性能方面都更好。这就是说,我想知道为什么你要绘制到drawRect之外的图形上下文中:通常情况下,您只需在drawRect中执行绘图:在图形上下文中已经为您设置的图形上下文中。 – Ryan 2010-12-07 17:31:37

回答

4

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

http://www.cocos2d-iphone.org

此框架使用OpenGLES渲染精灵,它配备了2个不同的物理引擎使用(我比较喜欢Box2D的),并有一个非常繁忙的和有用的社区从中获取帮助。

祝你好运!

+0

还有Sparrow 2D引擎(http://www.sparrow-framework.org/),“他们”认为这很容易理解和使用。 – lm2s 2010-12-07 17:06:53