スクラッチプログラミングに挑戦している皆さん、どうも!スクラッチコーチです。
前回に引き続き、敵モブを作り込みます。 アニメーションする 敵モブのアニメーションでもコマを使う作戦にします。これはプレイヤーでも実装した作戦です。ただプレイヤーは歩くスピードが変わるのに対して、敵モブは基本的に一定スピードで動きます。そのためコマが変わる速度も一定間隔でOKです。 具体的には、プレイヤーで必要だった変数「コマスピード」が敵モブでは不要になります。 ブロック定義「アニメーションする」を作る 利用する 変数「コマ」を作る 初期化する コマでコスチュームを変える 「○秒待つ」ブロックではなく、変数「コマ」を利用してアニメーションのスピード調整をしていきます。制御ブロックを使って処理を止めるのではなく、演算の特徴を使ってスピードをコントロールします。 これのメリットは、処理が止まらないのでカクカクしづらい点です。 ステップ1 コスチュームを変えるブロックを置きます。 ステップ2 「りんごとバナナ」で変数「モブ名」と数字を利用します。これはコスチューム名と連動しています。 ステップ3 「切り上げ」ブロックと「剰余演算」ブロックを使います。剰余演算に入れる数字は、移動用のコスチュームの数です。 ステップ4 1をプラスします。理由は、剰余演算では2 ÷ 2 = 0になってしまうからです。コスチューム名は1から始まるため、プラス1します。 ステップ5 モブ名の後ろに合体させます。 ステップ6 これで完成です。 動作確認する (check01 目が進行方向に動いている様が確認できます。 移動用のコスチュームを数える ステップ3で直接2という数値を剰余演算に指定しました。いわゆるマジックナンバーですね。プログラミングのマナーが良いとは言えません。 また、これは敵モブによって数が変わる可能性が高いので、変数化しておきます。 ブロック定義「移動のコスチュームを数える」を作る オプションにチェックを入れます。 利用する ブロック定義「初期化する」内で使います。 変数「移動のコスチューム数」を作る 初期化する ステップ1 コスチュームを1つ目の移動用コスチュームに着替えます。 ステップ2 「りんごにりが含まれる」ブロックを置いて、左側にはコスチュームの「名前」を入れます。 ステップ3 「りんごとバナナ」ブロックを使います。 ステップ4 ステップ5 合体させます。 ステップ6 更に合体します。 ステップ7 「ではない」ブロックで全体を否定します。 ステップ8 これを「○まで繰り返す」ループブロックの条件式に使います。 意味としては、コスチューム名に「モブ名+数字」が含まれている間は処理を繰り返すという感じです。 ステップ9 ループで何をしたいかと言うと、コスチューム数をカウントアップしていきたいので、変数「移動のコスチューム数」をプラス1ずつしていきます。 ステップ10 次のコスチュームに着替えます。 ステップ11 コスチュームをもとに戻しておきます。 条件式にたくさんブロックを使いましたが、やることはこれだけです。 これで敵モブに何個コスチュームがあっても、動的にカウントされるようになりました。敵モブを増やす準備が着々と整ってきていますね。 マジックナンバーを変数で置き換える アニメーションの処理で直接入力していたマジックナンバーの2を変数化しておきます。 動作確認する ねんのためさっきと動作が変わってないか確認しておきましょう。 敵モブが襲いかかってきた! 基本的な移動はだいたいできました。本当はジャンプや特殊な動きなども加味する必要がありますが、それはマリオの敵モブを実装する際に作り込んでいこうと思います。 さきどりして次のような動きを想定していることを共有しておきます。 敵モブ 特殊な動き クリボー とくになし ノコノコ 本当は特にないが、崖があっても直進せずに方向転換して、落ちないようにしたい テレサ プレイヤーを追いかける。X軸だけでなく、Y軸にも移動してフワフワ動く。 パタパタ 一定間隔でジャンプする。 キラー 重力の影響を受けずに直進する。 パックンフラワー X軸に移動しない。ときどきジャンプする。 クッパ 火の玉を吐く。ジャンプする。めちゃ強いw こういう敵モブをゆくゆくは実装したいです。土台作りもあと少し。一緒に頑張っていきましょう! 次回は戦う機能を作ります。 こちらも数日以内に更新していきます!ブクマよろしくお願いします!スクラッチでマリオのゲームを作る特大レッスン#09 敵モブを召喚せよ3
敵モブを「○秒待つ」を使わずにアニメーションする方法が分かります!
-
スターター
プロジェクト -
リミックス用プロジェクトへ
Scratchデスクトップ用ファイルをダウンロード - サンプル
- 見本のプロジェクトへ
- 難しさ
任意)自分の作業中のスクラッチ作品URLを記録しておこう!再開するときに便利だよ。
LOADING...
※ この記録は今使ってるPCに保存されます。別のPCで作業するときは表示されません。