【ハウツー】
これまではiPhone 3G(以後iPhoneと表記)で動くゲームを作成しました。最初の「プチプチiPhone 3G」はiPhoneでなくてもブラウザでも動作します。2回目に作成した「隕石破壊ゲーム」は元はDashboard上で動いていたものを改良したものでした。どちらのゲームもiPhone以外でも動作するゲームでした。でも、せっかくiPhoneでゲームを作成しているのですから、iPhoneらしいゲームを作ってみたいところです。
iPhoneの特長の1つとして「タッチパネル」があります。そこで、今回はタッチパネルを活かしたゲームを作成してみます。どのようなゲームかと言うと「指定された座標に正確にタッチする」というものです。指定された座標とタッチした座標の差がポイントになります。今回のゲームは秒数など時間は競わずに、タッチした位置の正確さを競うものです。
iPhone自体はタッチした位置を取得できるのは当然ですが、問題はSafariでタッチした座標を取得することができるかどうか、という点です。幸いiPhone用のSafariには独自のタッチ処理用のイベントと座標値のプロパティが用意されています。
画面全体をタッチした場合に指定した関数checkPointを呼び出すには以下のようにします。
document.addEventListener("touchstart", checkPoint, false);
touchstartはタッチが開始された時のイベントです。iPhone用のSafariには他にも以下のタッチイベントが用意されています。
| touchstart | タッチ開始 (mousedownに相当) |
|---|---|
| touchend | タッチ終了 (mouseupに相当) |
| touchmove | タッチ中 (mousemoveに相当) |
| touchcancel | タッチキャンセル |
今回はタッチ位置だけなのでtouchstartイベントを捕捉して指定された座標値との比較を行います。
タッチされた座標はevent.touches[0].pageXとevent.touches[0].pageYで取得することができます。touches[0]の0は同時にタッチされることもあり、その際にはevent.touches[1].pageXのように参照番号を指定して座標値を取得することができます。今回の場合はタッチされるポイントは1つだけなのでevent.touches[0].pageXとevent.touches[0].pageYで座標を取得します。
それではゲームの説明に入りましょう。
| レノボ・ジャパン、ウェブ広告モデルを一般公募 - 新生活キャンペーンの一環で [21:21 2/10] |
| 【レポート】スマートフォンを狙ったワンクリック詐欺やオンラインバンキングを狙うゼットボット - トレンドマイクロマンスリーレポート [20:43 2/10] |
| 【レポート】レノボ、大和研究所の開発陣らによる「ThinkPad X1 Hybrid」の技術解説 [20:41 2/10] |
| デル、「冬モデルファイナルセール」最終週 - 各種アップグレードが無料 [20:13 2/10] |
| Appleが3月初旬にスペシャルイベント開催の噂 - iPad 3の発表か [18:34 2/10] |
|
[観月ありさ]濃姫役で戦国時代劇初挑戦 信長役は城田優 SPドラマ「濃姫」 [05:00 2/11] エンタメ |
|
【レポート】秋葉原アイテム巡り - 『幻想水滸伝』シリーズ最新作や『GRAVITY DAZE』が発売! 冬アニメ注目のOP・EDテーマも続々リリース [05:00 2/11] ホビー |
|
激シブ!もう一度ゴルフ Ⅱ の魅力を味わってみませんか?【大阪オートメッセ2012】 [03:06 2/11] キャリア |
|
『ヘタリア』キャラソン、新シリーズが配信決定! [03:05 2/11] キャリア |
|
全国の温泉を擬人化したドラマCD、第1弾「草津」は櫻井孝宏さん! [03:05 2/11] キャリア |