Sunflat のブログ

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

加速度計をつかった2D操作とか

PapiJump3(id:sunflat:20061113:p1)っぽいゲームをiPhoneで作りたいなーと思っていて、現在開発中。

バイスの傾きで上下左右に操作したいので、とりあえず色々な計算方法を試してみた。

  • 加速度センサのx,y値をそのまま使う
    • バイスが垂直に近づくにつれ、縦方向の変化量が小さくなってしまう。ちょっと傾いた状態を基準角度にしたいので、上と下で変化量が変わるのは微妙
  • atan2(Gx,Gz), atan2(Gy,-Gz)の値*1を使う。ただし、加速度センサで取れる重力ベクトルの値をGx(右),Gy(上),Gz(正面)とする。
    • バイスが垂直に近づくと、横方向の角度の誤差が大きくなってしまう。これも微妙
  • atan2(Gx,sqrt(Gz*Gz+Gy*Gy)), atan2(Gy,-Gz)の値*2を使う
    • 上のムービーはこれ。いい感じなので、これで行く予定。

鏡餅ゲーム

鏡餅を積み重ねるゲーム(PC用Flash版)をiPhone用にリメイクしてみた。


http://www.sunflat.net/iphone/app/kagamimochi/

海外向けということで、背景に富士山、キャラクターにサムライを採用。
リリースが鏡開き(1月11日)に間に合って良かったw

*1:バイスy方向を軸とした回転角度と、デバイスx方向を軸とした回転角度 (多分)

*2:地面y方向を軸とした回転角度と、デバイスx方向を軸とした回転角度 (多分)