最近、Objective-C と cocos2d を同時に手に入れました。入門書として、最初に Objective-C について多くのことを読みました。構文を除けば、その知識のほとんどは私のゲームでは使用されていません。cocos2d のチュートリアルを始める前に、objective-c について学ぶべき最も重要なことは、メモリ管理とデバッグです。
使用している言語によっては、参照カウントのメモリ管理に慣れるまでに数分かかる場合があります。一般的なルールは、割り当て/コピー (自動解放なし) または保持した場合、ある時点でそれを解放する必要があり、現在のスコープを超えて何かを使用する必要がある場合は、それを保持する必要があります。オブジェクトの dealloc メソッドを上書きして、作成/保持したものをすべて解放する cocos2d の例をいくつか見ることができます。
デバッグにも慣れるのに1分かかりました。キャッチされなかった例外をログに記録するために使用できる高レベルの try/catch ブロックを追加すると役立ちます。ゾンビを有効にするなど、プロジェクトの設定の一部を調査/いじって、バグをより適切にキャッチできるようにすることもできます。Objective-C でのクラッシュの大きな原因は、既に割り当て解除されたオブジェクトにメッセージを送信することです。理解できないbadaccessエラーに出くわすと、基本的に、原因を突き止めるために、このようなものにひざまずくことを余儀なくされます.
NSArray および NSDictionary オブジェクトがどのように機能するか、それらが自動的に保持/解放する方法、およびオブジェクトのみを保持する方法 (プリミティブ値を保持しない) についてよく理解することで、役立つ他の純粋に客観的な c の知識が得られます。float/int および array/dictionaries を操作するには、プリミティブを NSNumber オブジェクトのようなものに変換する必要があります。これは、少し調査するだけでかなり簡単に実行できます。また、plist を保存/ロードする方法を知っていることも役に立ちます。NSArray および NSDictionary オブジェクトでこれを行うための便利なメソッドがあります。これと NSFileManager に関する少しの知識があれば、ゲームの状態を保存/ロードするのに十分なはずです。コーディングを本当に凝った/きれいにしたい場合は、objective-c のオブザーバーについても学びます。KVO は、特定のオブジェクト プロパティの変更時に UI を自動的に更新するのに最適です。たとえば、私の HUD はプレイヤー オブジェクトのライフを KVO するので、ライフの値が変わると HUD が自動的に更新されます。これにより、よりクリーンな MVC タイプのアプリケーションを作成できます。プロパティの変更だけでなく、他のタイプのメッセージをリッスンするように登録することもできます。リッスンが完了したら、必ずリスナーの登録を解除してください。
私の最後のアドバイスは、常に XCode の警告に注意を払うことです。原因がわからない場合は、その理由を理解する必要があります。無視できる単純なものもあれば、他の方法では追跡できないバグを引き起こすものもあります。たとえば、コードで関数 max() を使用したことがありますが、xcode から、理解できないという奇妙な警告が表示されました。これにより、スタックが破損し、プログラムに大混乱が生じました。max() を MAX() に変更したところ、原因不明の 3 つまたは 4 つのバグがすぐに消えました。この種のことは、数週間後戻りする可能性があり、すぐに見つけないと、コードのすべての部分を徹底的に調べる必要があります。
残りのほとんどは、cocos2d コード/例を見ることで学習できます。幸運を。