[HMC]年間5250円で独自ドメイン付属、ウィルスチェックありのレンタルサーバ!
Last update : 1999/12/13)
ゲーム制作基礎 第6回
慣性の法則を使用したキー入力によるキャラクタ移動
サンプルコードのダウンロード
  では、まずサンプルコードをダウンロードし、解凍して下さい。 私はVisual C++6.0でコンパイルしているので、をお持ちの方は Visual C++でプロジェクトファイルを開いて下さい(「game_06.dsw」をダブルクリックすれば開けます)。 圧縮ファイルに含まれる「game_06.exe」をダブルクリックし、実行してみて下さい。どうでしょう?画面が切り替わり、フルスクリーン化すると思います。 そして、カーソルキーを押すと、キャラクターが動くと思います。 というわけで今回は、慣性の法則を使用したキャラ移動について解説したいと思います。
慣性の法則とは?
  慣性の法則とは、私も詳しくは知りませんが、「物体は同じ運動を続けようとする」とかそんな感じの法則だった気がします(爆。 宇宙空間のような摩擦の少ない場所で、一度動き出すと何かにぶつかったりするまで動き続けるというやつです。 まぁ、スケートで一度動き出したらなかなか止まらない現象も同じですね。詳しく知りたいなら物理の先生とかに聞いて下さい(爆。
  過去のゲームでも慣性を使用したゲームなんて腐るほどありますよね?(^^;月面着陸ゲームだとか。Bio100%さんの蟹味噌もそうですね。まぁ使い道はいろいろあるので 覚えておいても損は無いでしょう。
実際にプログラムを組む
ではサンプルコードを見ていきます。
では、順番に解説して行きたいと思います。
移動量(cmx,cmy)は毎回キャラクタの座標を移動させる値です。 例えば、cmxを5.0に設定しておけばキャラは右へ移動し続けます。 で、キー入力により、この移動量を変えることによって、慣性の法則のようなものが実現できるというわけです。

  今まではキー入力でそのままキャラの座標を変更していましたが、慣性を使用する場合はキー入力で移動量を変化させ、 移動量によって毎回キャラクターを移動させます。

  それから、ついでなのでキャラクターを画面の端で跳ね返らせる事にします(そうしないと直ぐ画面外に行ってしまう)。

  例えば、左端の壁を越えてしまった(cxが0より小さくなった)場合は、まずcxを0にします。 これをやらないとキャラクターが埋まってしまったり、帰ってこなくなる場合があるからです(^^; で、移動量(cmx)の符号を反転させてやります。(なんて簡単な・・・)