Sunflat のブログ

ソフトウェア開発についての話題が多いかも

ナイパッド族のためのiPadシミュレータ活用方法

1980年代、パソコンに興味を持ちながら所有出来ない者のことをナイコン族と呼んだ。

そして2010年4月、アップルによる突然のiPad発売延期を受け、iPadに興味を持ちながら所有出来ない「ナイパッド族」が大量発生するだろう。

そこで、iPadシミュレータ中心のゲーム開発手法を探求する。

iSimulateを入手

画面を単純にタップするだけのアプリであれば問題ないが、加速度センサやマルチタッチを使ったゲーム等の場合、シミュレータのみでは操作ができない。

iSimulateというアプリを使うと、iPhone実機上の加速度センサやマルチタッチの情報を、ネットワーク経由で送信し、iPhone/iPadシミュレータ上で動いているアプリに反映させることができる。

iPhoneアプリのiSimulateと、Mac上で使うiSimulate SDKをダウンロードする。

まずは、無料のiSimulate Lite(シングルタッチのみ、センサ非対応)で動作確認をして、正常動作したらiSimulate(現在1800円)を買うと良いだろう。

iSimulate SDKは、OpenGLの画面をiPhone上に転送したいならOpenGL版を、そうでないなら通常版をダウンロードする。

iPadを自作する

次に、iPad(の模型)を自作する。


1) iPadの実寸大画像を印刷する。拡大率100%(拡大縮小しない)に設定されていることを確認してから印刷すること。


2) ダンボールに、iPad画像を印刷した紙と、iPod touchを貼り付けて、適当な大きさに切り取る。iPhoneを貼り付けると、電話がかかってきた時に困るので注意。充電ケーブルを差せるように、端子の部分は空けておく。


3) 裏に、1.5ポンド(680グラム)の重りを貼り付ける。ここでは、パインの缶詰を使用した。


4) これはiPadなのだと自己暗示をかける。


ちなみに、板を使う方法もあるらしい。

iSimulate SDK とのリンク

XCode上で、先ほどダウンロードしたiSimulate SDKを以下のようにリンクする。

1) iSimulate SDK に含まれている libisimulate.a を、プロジェクトに追加する

2) プロジェクトの情報ダイアログを開き、「ビルド」タブ > 「他のリンクフラグ」 に -ObjC を追加する

3) iPadシミュレータ上でアプリを実行

4) iPod touch 自作iPad 上で iSimulate を起動し、接続したいMacの名前を選択

これで、マルチタッチや加速度センサを使ったiPadゲームも、シミュレータ上で起動して操作できる!

iSimulate 上級編

画面をパッドにして操作する場合や、フリック(画面を指でスライド)で操作する場合は、iPod touchiPad で画面サイズが違うため、この方法だと操作を再現できない。

画面の一部(iPod touch 程度の大きさ)しか操作に使わない場合は、以下のように画面全体の座標系をその領域にマッピングしてしまえば、操作を再現できる。ちなみに、iPadの画面サイズは 19.6cm x 14.7cm、iPod touchの画面サイズは 7.6cm x 5.1cm ぐらいだった。

#import <TargetConditionals.h>

CGPoint touchPos = 〜〜〜;

#if TARGET_IPHONE_SIMULATOR
  touchPos.x = touchPos.x * 5.1f / 14.7f + 〜〜〜;
  touchPos.y = touchPos.y * 7.6f / 19.6f + 〜〜〜;
#endif

応用例

ここで紹介した方法を使って、PapiJump for iPad を開発してみました。近日公開予定!

結論

ヤフオクやeBayとかで米国製iPadを買ったほうが早いかも。