子供とプログラミングを始めよう。【キャラクターを動かす】

Scratch
この記事は約3分で読めます。
記事内に広告が含まれます。

今回は、スパーマリオのようなのキャラクターの動きを作ってみます。
この様なキャラクターはアクションゲームを作る際に基本となる動きとなりますので
いろいろなイベントを処理しやすいようにイベント事にを分けて作ります。

スポンサーリンク

キャラクターの動作のアクション

・右矢印(→)で右に進む
・左矢印(←)で左に進む
・スペースキーを押すとジャンプする。
・右矢印(→)を押しながらスペースキーを押すと右方向にジャンプ
・左矢印(←)を押しながらスペースキーを押すと左方向にジャンプ
・矢印キーを押さずにスペースキーを押すと真上にジャンプ
・ジャンプ中、途中で方向転換はさせない。

というルールでキャラクターを動かしてみます。

あと、ジャンプを自然に見せるため、放物線を描くようにジャンプさせます。
ルールはこんな感じで、みなさんよくご存知のスーパーマリオに似た動きを目指します。

コードの詳細は説明しませんが、ブロックの並びを見ると、原理がわかると思います。

メイン部分

ここはすべてのキーイベントを受け取り、各処理に投げます。
スペースキーや、矢印キーに対応したイベントに制御を渡しています。
左右のキーが押されていない場合に、ジャンプ方向を上方向に設定します。
ジャンプ方向は1が右、0が真上、-1が左です。

変数の初期化

ここでは、コード内で使う変数の初期設定を行います。
例えば、キャラクターの大きさや、移動速度、ジャンプの高さなどです。

スペースキー押したときのジャンプロジック

ここは、スペースキーに反応してキャラクターをジャンプさせる処理です。
矢印キーを押しながらスペースを押した場合は、矢印の方向にジャンプするようにしています。
また、着地した瞬間のコスチュームを固定させています。

右矢印を押したときのキャラクターの移動

ここでは右矢印キーに反応して、キャラクターを右に移動させるロジックです
「ジャンプ方向」に[1]をセットして、移動方向を変数に保存することで、ジャンプしたたときの、方向に利用しています。

左矢印を押したときのキャラクターの移動

ここでは右矢印キーに反応して、キャラクターを右に移動させるロジックです
「ジャンプ方向」に[-1]をセットして、移動方向を変数に保存することで、ジャンプしたたときの、方向に利用しています。

放物線を描くようにジャッンプさせる処理

放物線を描くようにジャンプさせるため、変数を使いカーブを描くようにジャンプさせています。飛んでいる最中はコスチュームを固定させています。

キャラクターを動かすだけですが、意外と複雑になってしまいました。
しかし、イベントはメインロジックにすべて集約しているので、ここに新たなイベントを足すのは簡単にできそうです。
プログラムを見やすくするためイベントを発火させる部分と、発火したイベントに反応して動作する部分を分けて作ると、後々修正や機能追加が楽になります。

ダウンロード

このプログラムをダウンロードはこちらです
ゲーム用キャラクタ動き_基本.sb3

DEMO

Scratch DEMO

https://scratch.mit.edu/projects/375101096


コメント

タイトルとURLをコピーしました