歩行プログラム(スクロール版の動作) | 自由帳:Cページ

自由帳:Cページ

プログラム学習記:このブログは、管理人葉月によるゲーム研究の場です。

ここにあるソースは、実験的な物や研究的なものを多大に含んでいます。

たとえ何か問題が発生しても責任は負いません。

以前、こういう風にキャラを歩かせるように作った。
http://ameblo.jp/shaold/entry-10118548934.html


が、RPGではこういう風に歩かないことに気づいた。
では、どこを歩いているのか?

答えは、常に真ん中を歩いているということだ。
つまり、キャラは歩く動作のみで背景が動いているのである。

これをどうプログラムするのか分からないのでもう少し煮詰めてみようかと思う。

上記の問題を含みながらも完成した関数
http://members3.jcom.home.ne.jp/strolling/zukai/walk.txt
http://members3.jcom.home.ne.jp/strolling/zukai/walk_h.txt

前回のプログラム (2008-07-25)との違いは、
1キャラが歩いているアニメーションを追加

2データと処理の分離
関数へは、キャラ画像(画像は12分割限定)とキャラの位置を渡すだけでOK!

3立ち止まり時に、歩く途中の画像で止まらないように補正する関数を追加

の3点。
マップに関しては、後ほど。
だんだんこのブログがバージョン管理のためにupするようになってきているような…。


追記
キャラを常に真ん中に配置するには、

DrawGraph( ch->x , ch->y , ch->c , TRUE ) ; と言う関数を、
DrawGraph( 250 , 250 , ch->c , TRUE ) ; に変更すればいいと言うことが判明した。

(ちなみに250と言うのは暫定。使用するときは、#defineで数値を固定したほうが良さそう。)

追記その2
この関数内に背景を入れる処理も一緒に書かないといけないことが分かった。
背景と歩く処理を別に書いた場合、背景をロード後歩く処理に移り、
歩いている間は背景が消えてしまう。
そして、歩き終わったら背景画像が再びロードされると言った具合になった。
改良の余地があるが、歩かせるだけと言う意味では完成してるので、そのままにしておく。
(けっしてめんどくさかった訳ではない。)