忍者ブログ

アンホリなんとかプロダクツ ~UnHolY DisAsTeR~ アクションゲームを作りたい人が気が向いたときに何かを書きます。現在は「UnHolY DisAsTeR」制作中!

RSS TWITTER RssTwitter

主人公の移動プログラムを考える(第一回)

夜間ゲームクリエイターとなっているHatahataでございます。
ゲームクリエイターを自称できるほどのレベルかは疑問ですがね。
年末というのはいろいろと忙しく、12月中旬を越えれば少しは時間が取れると思ったら大きな間違いでした。
年末年始もいつから休みに入れるかよく分からないので、本腰を入れてゲーム制作に入れるのはいつになることやら・・・
前回、「ジャンプとはしご」というMMF2にデフォルトで設定されている動作を使うことにより、簡単に主人公が動くようになりました。
ただ、この「ジャンプとはしご」はどうも細かい条件の設定ができないっぽいです。
今後、空中での攻撃パターン等を作る場面になった時にそれでは困りそうですので、一から動作プログラムを作っていくことにします。

まず、アクションゲームにおける主人公の動作とはどのようなものかまとめてみることにします。
私用の覚書みたいなものです。

主人公には下方向に重力が働いている。
床オブジェクトに接触している場合、床の上を左右に歩行することができる。
ジャンプボタンを押すとジャンプする。
ジャンプ後、重力の影響でY座標上方向への移動速度が徐々に落ち、マイナス方向に転ずる。
ジャンプ中に床オブジェクトに接触した場合、落下は停止し、接地待機状態に移行。
床オブジェクトが足元に無い場合、落下を開始する。

ざっとこんなところでしょう。
しかし、メンドクサイ。。。
MMF2の習得度がまだまだ全然低い私にとって、重力なんてどうやって設定するんだよって世界です。
とりあえず、作れるところから手を付けていきましょう。

まず、作れそうなのが左右への移動です。
動作プログラムはいちいち各フレームに書いていたら地獄を見ますので、オブジェクトのプロパティに「オブジェクトイベント」という便利そうな機能を見つけましたので、こちらに書いていくことにします。これに書いておけば、わざわざフレームごとにイベント条件書かなくてもOKだそうです。

■プレイヤー1が右方向を押し続けている間
→移動結果=現在X座標+歩行速度
→アニメーションシーケンスを走るに変更
→オブジェクトの向き、アニメーションの向きを右に変更

■プレイヤー1が左方向を押し続けている間
→移動結果=現在X座標-歩行速度
→アニメーションシーケンスを走るに変更
→オブジェクトの向き、アニメーションの向きを左に変更

これで主人公が左右に動くようになりました。
まあ、こんなところでしょう。

次は主人公に重力を働かせる設定なのですが、考えがまだ完全にはまとまっていません。
たぶん・・・こんな感じに作っていくのではないでしょうか?

・主人公の足元に1ドットの「床判定用オブジェクト」を発生させる
・床属性が付いたオブジェクトと床判定オブジェクトが重なっている場合、「接地」スイッチオン
・接地スイッチがオンのときは、上記歩行プログラムが動作する
・接地スイッチがオフになった場合、重力プログラム動作開始

上記みたいなことをやれば可能でしょうが、重力プログラムにはどのような計算式を作ればいいか、床属性というものを果たしてオブジェクトに持たせることができるのか・・・
MMF2の機能をある程度理解しないと、方法を思いついても実行可能かどうか分かりませんね。
また深夜に嫁に怒られながら制作作業を続けていこうと思います。
PR
Comment
name
title
color
mail
URL
comment
pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
コメントの修正にはpasswordが必要です。任意の英数字を入力して下さい。
この記事へのトラックバック
この記事にトラックバックする:
Clear