【发布时间】:2009-02-23 23:23:18
【问题描述】:
我们正在开发几个简单的游戏,但我们一直遇到一些性能问题,我很好奇这是代码问题还是“我们使用了错误的对象”问题。
我们的游戏基本上是简单的,工作如下:
我们有一个要加载的自定义视图,以及一个作为我们游戏引擎的自定义对象。该视图有一个像这样触发的计时器:
[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 方法中多次不会得到响应。这只是核心图形库的限制吗?我们应该使用OpenGL吗?是否有其他方法可以制作响应更快的简单动画(甚至不是在屏幕上移动的对象,对于同一位置的对象只需 6 帧左右的动画)?
非常感谢!
【问题讨论】:
标签: objective-c iphone cocoa-touch