我們正在研究幾個簡單的遊戲,並且我們遇到了一些性能問題,並且我們很好奇它是代碼問題還是「我們正在使用錯誤對象「問題。使用簡單圖形的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