第3回は「キャラクターを動かしてみよう」です。
(初心者講座を最初から見たい場合はこちら)
前回覚えた内容を元にキャラクターを動かしていきたいと思います。
自動で右に向かって動かす
試しに自動で右に動いていく処理を作ってみましょう。
まずは準備として赤毛の戦士を画面に表示します。

実行結果がこちら。

画面左端に赤毛の戦士が表示されれば成功です。
第1回と違う所は表示する座標を変数にした所ですね。
ここではX座標用の変数を「MX」、Y座標用の変数を「MY」としています。
続いて画像の内容(9行目以降)を追加してみてください。

実行結果がこちら(動画です)
右に移動していけば成功です。
ちょっとゲームらしくなりましたね^^
解説
前回の「ループとは」で、HAKOの中身を1ずつ増やしていくことをやりましたが、それと同じことをMX(赤毛の戦士のX座標用の変数)で行っています。
「MXを1増やして(MX=MX+1)、赤毛の戦士を表示(SPOFS 0,MX,MY)」を繰り返すことで、画面上では右に移動しているように見えます。
それではついにコントローラーで動かしていく処理を作っていきましょう!!
・・・と言いたいところですが、その前に1つ新しい命令を紹介します。
「もしも〇〇だったら××する」という動作する「IF文」と呼ばれるものになります。
IF文の解説
どんなものなのかわかりやすくするためにサンプルのプログラムを用意しました。
(参考:別のプログラムを試す時の簡単な方法はこちら)
こちらのプログラムを打ちこんで実行してみてください。

実行結果がこちら

実行した内容としては
4行目 もしもHAKOの中身が0なら(0と等しいなら)THEN以降の「PRINT」を実行する
というものになります。
HAKOには0が入っているので「0」と表示されました。
「IF」の後ろが条件で、その条件を満たしていたら「THEN」以降の処理が行われる仕組みになっています。
そのため、3行目を「HAKO=1」に変えた場合は、HAKOの中身が0ではないので、THEN以降は実行されません。
(「0」と表示されず、OKだけ表示されて終了する)
なお、「==」は「等しい」という意味です。
「=」は入れるという動作で「==」は等しいという意味、算数的な意味合いから考えるとちょっと混乱しますね。
コントローラーでキャラを動かす
では実際に十字キーの右を押した時に右に動く処理を作っていきたいと思います。
画像のように「LOOP」の中にある「MX=MX+1」部分を書き換えて下さい。
(10行目です)

いきなり難しくなったように見えますが、実は大したことはありません。
BUTTON関数というもので指定された十字キーやボタン押されたかどうかのチェックをしていて
THEN以降を実行する(MXを1増やす=右に進む)
という処理をしています。
実行結果はこちら(動画です)
十字キーの右を押した時だけ、右に進むようになりました。
あとは同じように残り3方向の入力処理を作っていけば良いのですが、ここで関連する内容として画面サイズと座標について説明します。
画面サイズと座標
プチコン4では指定しない場合、画面サイズは「400 × 240」ドットとなっています。

また座標は右、下に行くにつれて増えていきます。
そのため、左上の(X,Y)が(0,0)、右下が(399,239)となります。

数学で使われているY座標とは増えていく方向が逆(下に行くほどプラス)になるので注意してください。
そこに注意して、残り3方向の入力処理を作っていきましょう。

追加した11~13行目は「左が押されたらMXを-1、上が押されたらMYを-1、下が押されたらMYを+1する」という内容です。
実行結果はこちら(動画です)
実際に自分の操作で動かせるようになると、かなりゲームらしくなりますね。
第3回は以上となります。
初心者講座のトップに戻る場合はこちら

コメント