プラットフォーマーの作り方
Scratchでプラットフォーマーを作る方法です。
はじめに
プラットフォーマーと言っても、2Dプラットフォーマーか3Dプラットフォーマー(もちろん1Dプラットフォーマーでも4Dプラットフォーマーでも10Dプラットフォーマーでもいいですよ)か、何次元のプラットフォーマーを作るか決める必要があります。
3Dのプラットフォーマーを作るには、3Dの当たり判定や2Dの画面への描画について勉強しなければなりませんし、次元が大きくなると操作方法も考える必要があります。多分そっちにかける時間の方が長くなるんじゃないかな
この記事ではプラットフォーマーを作るための事をできる限り分かりやすく詳しく書くので、分からない部分があったら、もう少しScratchに触れるか諦めるかGoogle検索するかしてください。
また、この記事ではプラットフォーマーの基礎の部分を書きますので、自分でアレンジして、どんどん機能を追加していくことをお勧めします。
プレイヤーの動き
プレイヤーは、
これで動かします。一つずつ解説していきます。
➀X軸を動かす
X軸は、
で動かします。
X軸は、Xの速さの変数に従って動かします。
基本的に下のプログラムでうまく動くと思いますが、摩擦をもっとかけたいなら、0.9よりもっと大きくしましょう。
最初の(<(右向き矢印)キーが押された>-<(左向き矢印)キーが押された>)についてですが、真偽値(※1)を計算すると、true(※2)の場合1、false(※3)の場合0として計算されるので、この場合、右向き矢印キーが押されたらX速さを1ずつ変えて、左向き矢印キーが押されたらX速さを-1ずつ変えています。
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にしないと、復活したら不自然に上にジャンプしてしまうときがあるためです。