2009-11-18 55 views
1

我想作一些簡單的2D遊戲/克隆(適用於Mac),但我有幾個問題:Mac開發 - 瞭解如何開始使用2D遊戲

  • 我應該使用石英2D的OpenGL(我不打算嘗試很快3D隨時隨地)
  • 似乎有很多像CGFloat的/ GLfloat typedef定義的東西,這是我應該用?
  • 我是否應該在遊戲中使用Objective-C(類)或只是C? (我假設我將使用Objective-C和Cocoa作爲窗口和視圖。)
  • 每次重繪整個視圖都可以嗎?我真的不明白NSView的-drawRect dirtyRect參數是如何工作的,它是如何知道我想要更新的?
  • 有沒有什麼好的教程呢?

謝謝。

+0

另一種檢查真正容易繪圖的語言是Processing。 http://processing.org/ – jtbandes 2009-11-18 04:47:10

回答

3

石英或核心動畫與OpenGL真的取決於你想要做什麼。如果您想要簡單的繪圖和動畫,請使用Quartz或CA.如果你想要快速/強大的遊戲,請使用OpenGL。最終我會建議同時學習。

對於typedef'd的東西,請使用您所使用的特定系統。對於Quartz/CA/CG,使用CGFloat。對於OpenGL,使用GLfloat。 Objective-C vs.C也取決於你想要的速度。 Objective-C增加了一點點的開銷,但是(顯然)會讓你創建更多的面向對象的遊戲。我建議使用Objective-C,如果你使用Quartz和Core Animation,以及如果使用OpenGL,則使用Obj-C或C.但是,如果您在Mac上執行此操作(例如,不適用於iPhone),除非正在進行復雜的快速繪製,否則您可能看不到太多差異。

我不能完全肯定的drawRect,但this question有一些信息,其中可能回答這個問題要問你。

對於Quartz的介紹,我推薦this tutorial,我一直聽說推薦OpenGL的NeHe tutorials

+0

感謝您的快速回復!現在我只是想用模擬的gavity製作一個boncjng的小球動畫,但我想嘗試下一個蛇的克隆,並最終走向更復雜的事情。是的,這不適用於iPhone。核心動畫實際上可以做什麼?我是對的,OpenGL是更移動的對象,而石英更多的繪畫形狀? – mk12 2009-11-18 04:14:35

+0

核心動畫可以讓您輕鬆做出動作和動畫。石英是用來繪畫的。我相信他們可以合併。 OpenGL是我想要的移動物體,場景等。 請參閱本指南:http://developer.apple.com/mac/library/documentation/cocoa/Conceptual/CoreAnimation_guide/Introduction/Introduction.html – jtbandes 2009-11-18 04:22:44

+0

如果我做的最多在C中它可能會更容易移植到Windows,對吧? – mk12 2009-11-18 13:40:24

1

如果使用SDL有兩種開羅或OpenGL,你會得到幾乎相同的編程模型,但你跨平臺的兼容性幾乎是免費的。如果你願意,你甚至應該能夠繼續在遊戲的大部分時間使用目標C.

你想得到圖形密集程度如何?開羅可能會更容易開始使用2D。