バランスのシミュレータ動作

「iPhone SDKの教科書」のサンプル・コードの「バランス」は、iPhone実機で動作させる必要があります。iPhone Simulatorでは加速度センサーが動作しないので、ボールが中央に留まったまま動かないからです。そこで、iPhone Simulatorでも擬似的に一定の速度でボールが動くようにしてみました。加速度センサーのような面白みはありませんが、ボールが壁に衝突した時の動作を確認できます。

速度の初期値を設定する

速度の初期値を適当に設定します。加速度の初期値を設定しても構いません。

【P.258の012〜013行目】
speedX = 0.7;
speedY = 0.5;

タイマーでmoveメソッドを呼び出す

加速度センサーのデリゲートが呼び出されないので、タイマーでmoveメソッドを呼び出します。タイマーは「スマッシュ」で説明した通りですが、時間間隔を0.02にすることと、呼び出すメソッドがmoveであることが異なります。

【P.258の033行目あたりに挿入】
#if (TARGET_IPHONE_SIMULATOR)
[NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(move) userInfo:nil repeats:YES];
#endif

TARGET_IPHONE_SIMULATORはiPhone Simulatorでの実行を示すマクロですね。これがないと、実機動作させた場合に二重にmoveメソッドが呼び出されるのでタイヘンです。速度の初期値設定にもマクロ判断を入れるとモアベタ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

This blog is kept spam free by WP-SpamFree.