イメージ描画、タイマーイベント、タッチイベントの三大奥義を会得

今更ながらiOS勉強中です。
参考書は「iPhone/iPad/iPod touchプログラミングバイブル」です。
今年初めから仕事で微妙にコードを修正したりといった作業はしていたのですが、ちゃんと1から初めて。
この本は結構わかりやすくて順をおっていけばひと通りアプリ作れそうな感触がします。1冊おわったら他の本も併用していきましょう。
XCodeもよく出来てて快適ですね。Objective-Cの慣れない構文でも、XCodeのお陰でミスが事前に防げる。


最初の章から順番に動かしていって、イメージ描画、タイマーイベント、タッチイベントというアクションゲームを作るのに最低限必要な要素を理解したので、ちょっと動くものをつくってみました。

タッチした位置からキャラが湧き出る〜
って、アプリ。マルチタッチ対応!


でも、描画が超絶重い。
どうやらUIImageを直接描画するのは、本来の使い方ではないようで・・・
参考書でもとりあえず描画のサンプルとしてで適したが、後のほうの章ではCoreAnimation(UIView)などを使ってのゲーム解説が載ってました。
知ってる機能だけでなんでもやろうとしちゃいかんですね。
本格的にゲームを作るなら、OpenGLESを使うことになるでしょうけど、フレームワーク内でも結構動くものできそうですね。
Objective-Cの考え方も少し慣れてきました。とっつきにくい構文ですが、面白い機能が結構あって、オレオレフレームワーク作ってみたくなりますね。


ぼちぼちやっていきます。


/
iOS SDKでは文字列クラスのNSStringが、drawStringメソッドとかで画面描画までやっててなんじゃこりゃ?と思ってたけど、UIKit.hがカテゴリ構文を使ってメソッド拡張してるんだ。なるほど。
・カテゴリ構文で既存のクラスを拡張出来るのはいいですね。
・@selector( method: ) でメソッド名指定するとき、「:」つけるの忘れててハマった
・座標は全てfloatでの指定なので、Retinaディスプレイ対応機でもあくまで座標は、320x480で指定するんですね。Retina解像度で座標指定するときは、0.5ピクセル単離で指定する。これはらくでいいね。
Androidと違って、座標直打ち楽ー
・参考書では、メンバー変数は先頭に「_」をつけるという命名規則だったけど、僕は後ろに「_」をつける方針にしよう。Javaでもそうしてたし、「Google Objective-Cスタイルガイド」でもそうなってるし。
フレームワークの機能を呼び出すのが、オブジェクトのメソッドを呼び出すのか、C関数に渡すのかまだごっちゃにんって困る。あと、retainつける付けないが物によってちがったり。
・こういうのはある程度数をこなしていくしかないな。
・次はUIコンポーネントについて勉強する。


・この参考書はARC使わない方針なんだけど、これからはじめるプロジェクトはARC使ったほうがいいよね…