iPhoneでヌルヌルキャラクターが動くゲームを作る方法

iPhoneのキャラクターがヌルヌル動いて、それらのキャラクターにタップ・フリックでいろいろ出来るアクションゲームの作成方法

  • canvasを使ったり、left, topをいじるとキャラクターのスムーズでないため、css animations + css transformsのtranslate()でキャラクターを動かす
  • 1) touchイベントのリスナーで、動いているキャラクターに対するアクションが実装できる場合
    • touchイベントのリスナーを使う
  • 2) touchイベントのリスナーで、動いているキャラクターに対するアクションが実装できない場合(例: 特定直線上の敵キャラクターへの攻撃等)
    • 自分でキャラクターの座標を計算して、ヒットテストを行う
      • css transformsの動きは、ベジェ曲線を利用しているので、ベジェ曲線の式を使えば、時刻tから現在位置が割り出せる
      • transition-timing-functionごとの値も仕様に書いてあるので、その係数を利用する
      • 問題は、css transformsの時刻tは、横軸上の値であり、ベジェ曲線では、横軸の値から縦軸の値を直接出すことはできない。
      • そこで、ニュートン法を使ってt(時刻のtではない)を近似して、近似したtから縦軸上の値を算出する
      • 後は縦軸上の値にtranslate()で渡したx,yの値をそれぞれかければ、現在時刻tのx,yの位置が計算できる
      • 50%などで区切ると、それぞれの区間にtransition-timing-functionが適応されるので注意