我们正在研究几个简单的游戏,并且我们遇到了一些性能问题,并且我们很好奇它是代码问题还是“我们正在使用错误对象“问题。使用简单图形的iPhone上的性能问题
我们的游戏基本上都是简单的那些工作方式如下:
我们有我们加载自定义视图,那就是我们的游戏引擎的自定义对象。视图有一个触发像这样的计时器:
[NSTimer scheduledTimerWithTimeInterval:1.0/30.0 target:self selector:@selector(animationTimerMethod) userinfo:nil repeats:YES];
,并在我们的计时方法,我们有以下几点:
- (void)animationTimerMethod:(NSTimer*)timer
{
if([gameEngine doGameLoop]) //only redraw if we need to
[self setNeedsDisplay];
}
我们的绘图代码是非常简单的,我们只是画了几个使用类似于以下代码的图像:
- (void)drawRect:(CGRect)rect
{
CGGraphicsContext ctx = UIGraphicsGetCurrentContext();
CGContextDrawImage(ctx, someRect, someImage);
}
我们遇到的主要问题是对触摸的响应。我们的代码不会在touchesBegan方法中多次得到响应。这仅仅是Core Graphics库的限制吗?我们应该使用OpenGL吗?还有其他的方式来做简单的动画(甚至不是在屏幕上移动的对象,只是在同一个地方的对象的动画6帧左右),会更具响应性?
非常感谢!
在这种情况下,我并没有移动图像...我不时地改变它们(做简单的原地动画)......移动到Layers或CAAnimation仍然会有所作为吗? – Jonas 2009-02-24 16:11:20