プラットフォーマーの作り方

Scratchでプラットフォーマーを作る方法です。

はじめに

プラットフォーマーと言っても、2Dプラットフォーマーか3Dプラットフォーマー(もちろん1Dプラットフォーマーでも4Dプラットフォーマーでも10Dプラットフォーマーでもいいですよ)か、何次元のプラットフォーマーを作るか決める必要があります。
3Dのプラットフォーマーを作るには、3Dの当たり判定や2Dの画面への描画について勉強しなければなりませんし、次元が大きくなると操作方法も考える必要があります。多分そっちにかける時間の方が長くなるんじゃないかな

この記事ではプラットフォーマーを作るための事をできる限り分かりやすく詳しく書くので、分からない部分があったら、もう少しScratchに触れるか諦めるかGoogle検索するかしてください。

また、この記事ではプラットフォーマーの基礎の部分を書きますので、自分でアレンジして、どんどん機能を追加していくことをお勧めします。


プレイヤーの動き

プレイヤーは、

➀X軸を動かす
②地面に触れたなら、戻る(→壁の当たり判定)
③y軸を動かす
④地面に触れたなら、戻る(→地面の当たり判定)
⑤➀に戻る

これで動かします。一つずつ解説していきます。

➀X軸を動かす

X軸は、

-➀変数「X速さ」を動かす
-②変数「X速さ」に摩擦をかける
-③X座標を変数「X速さ」ずつ変える

で動かします。

X軸は、Xの速さの変数に従って動かします。
基本的に下のプログラムでうまく動くと思いますが、摩擦をもっとかけたいなら、0.9よりもっと大きくしましょう。

最初の(<(右向き矢印)キーが押された>-<(左向き矢印)キーが押された>)についてですが、真偽値(※1)を計算すると、true(※2)の場合1、false(※3)の場合0として計算されるので、この場合、右向き矢印キーが押されたらX速さを1ずつ変えて、左向き矢印キーが押されたらX速さを-1ずつ変えています。

※1 六角形のブロックの事です。書いてあることが正しいのか、間違っているのかを判定します。
※2 「真」です。真偽値が正しいときの返す値です。
※3 「偽」です。真偽値が間違っているときの返す値です。

X座標には摩擦はかけた方がいいです。やらないと問題が発生することがありますが、あくまで問題なのであって、大問題ではありません。

摩擦をかけるには、1.0~0.0の数をかければよいです。お勧めは0.9です。お好みで変更してください。1よりも大きい数を掛けたら凄いことが起きますが、やらない方がいいでしょう。

X座標を変数「X速さ」ずつ変えるはそのまんまです。
スクロールプラットフォーマーを作っていて、X座標を変数に保存する必要があるのならば、その変数を動かしてあげたら良いだけです。

②地面に触れたなら、戻る

スプライトに触れたブロックや、用意していた地面の座標などを使って、地面に触れているかどうかを確認します。

もし地面が動かない場合はこれで大丈夫です。
画像では地面に当たったらX速さを0にしていますが、((0)-(X速さ))にすると、跳ね返るようになります。

③Y軸を動かす

Y軸を動かすときも、変数「Y速さ」に従って動きます。Y速さは、毎回-1ずつ変えてから、動かします。

初期値も設定した

Y速さは-2ずつ変えても、-0.3ずつ変えてもいいです。小さい程、重力は軽くなります。

④地面に触れたなら、戻る

これもさっきのX座標の時の要領でやればよいです。

<地面に触れた>の真偽ブロックを使って、ジャンプのプログラムも作っておきましょう。


うん。基本的にこれと、ステージの変更、トゲなどの設置で普通のプラットフォーマーが作れます。

注意

動く地面がある場合、埋まる時があります。

動く地面があると、埋まる時があります。動く地面を作る時は、その地面の情報を長方形でリスト化して、上からぶつかったならY座標を上の地面に触れないようにすればいいし、右からぶつかったならX座標を右の地面に触れないように戻ればいいです。

ステージを変える時や死んだときは初期値を設定しましょう。

右端にたどり着いてステージを変える時や、針に当たって初期位置に戻る時は、X速さやY速さなどを初期値に戻しましょう。ジャンプして死んだときに、Y速さを0にしないと、復活したら不自然に上にジャンプしてしまうときがあるためです。