2010-06-16 71 views

回答

1

我已經玩了幾個星期的小型等距3D遊戲。我第一次使用CA,但切換到OpenGL。我的理由是這樣的:

  • 切換使得有必要考慮,我做3D
  • 我沒有使用可可也沒有任何的OBJ-C構建在我的代碼,它是純C
  • 的OpenGL讓我測試我的應用程序在其他平臺上只有一個稍微不同的包裝

對我來說,這使得OpenGL是一個有價值的投資。

因人而異

+0

好點。仍然,製作像「塗鴉跳躍」這樣的2D遊戲並不一定需要opengl,是嗎?我想製作一款遊戲。我剛開始學習這個,所以我也想知道我應該從哪裏開始? CA或OpenGL – 2010-06-16 07:44:48

+0

這實際上取決於您打算在未來將它放在哪裏。如果這是一個單一的遊戲,並且你對遊戲開發沒有任何興趣,那就去CA吧。如果你最終想開發更復雜的遊戲,學習OpenGL是一個有趣且非常有意義的體驗,將來肯定會對你有所幫助。 – ivans 2010-06-16 07:58:37

1

這是我個人的看法, 我覺得做遊戲CA是複雜的。 我推薦OpenGL。

在基於OpenGL的項目中,您應該手動繪製並逐幀移動元素以製作動畫。 它需要比CA更長的代碼,但您可以輕鬆同步屏幕和遊戲狀態。 在使用CA時很難同步圖形和遊戲。

當然,OpenGL的性能比CA好得多。 而且,學習OpenGL並不難!

0

如果您沒有任何opengl和iphone開發經驗,我會建議您先使用石英制作基本遊戲,因爲它會爲您提供最簡單的學習曲線。爲了您的需要,它甚至可以在最後一場比賽中表現出色。

這是一個簡單的自定義視圖,它呈現一個具有30fps動畫循環的單個精靈。

@interface GameView : UIView{ 
    NSTimer* animTimer; 
    UIImage* sprite; 
} 
- (void)animate:(NSTimer*)theTimer; 
@end 

@implementation GameView 
    - (id)initWithFrame:(CGRect)frame { 
    if((self=[super initWithFrame:frame])){ 
     sprite=[[UIImage imageNamed:@"sprite.png"] retain]; 
     animTimer=[[NSTimer scheduledTimerWithTimeInterval:1.0/30.0 
     target:self selector:@selector(animate:) 
     userInfo:nil repeats:YES] retain]; 
    } 
    return self; 
    } 

    - (void)animate:(NSTimer*)theTimer{ 
    [self setNeedsDisplay]; 
    } 

    - (void)drawRect:(CGRect)rect { 
    [sprite drawAtPoint:CGPointMake(0,0)]; 
    } 
@end