はじめてのスクラッチ
- ① スクラッチで順次処理を学ぼう!ネコを左右に動かすアニメーションの作り方【初心者向け】
- ② スクラッチでネコが正方形に動くアニメーションの作り方|座標と向きの使い方
- ③ スクラッチでネコが左右にスケートするアニメーションの作り方|繰り返しの使い方
- ④ スクラッチでネコが走るアニメーションの作り方|コスチューム切り替えの使い方
- ⑤ スクラッチでネコがランダムな速さで走るアニメーションの作り方|乱数の使い方
- ⑥ スクラッチでロケットを矢印キーで動かす作り方|条件分岐の使い方
- ⑦ スクラッチで重力ゲームの作り方|もし〜なら・でなければブロック入門 (いまここ)
さぁ、スクラッチでナニ作る!?
スペースキーを押すと上昇20、離すと落下10という非対称な速度設計が効いている。上昇と落下の力を同じにすると操作がただの往復になるが、2倍の差をつけることでちょん押しでふわっと浮き、離すとじわっと落ちる手触りが生まれる仕組みだ。条件分岐ブロックに2つの数値を入れるだけで操作感をコントロールできる発想、作り方から確かめていこう。
動画で見てみよう
チャンネル登録して応援よろしく!チャンネル登録する
チュートリアルの元になった作品
今回の目標
- スペースキーを押したらロケットが上昇する
- キーを離したら重力で落下する
- 端に当たったら初期位置に戻る
スターター作品をリミックスしよう
このチュートリアルにはスターター作品があります。使わなくても大丈夫だけど、最低限の素材などが用意されてるので便利です。
スターター作品をダウンロード
#1ロケットの準備
前回は矢印キーでロケットを動かしたよね。今回はスペースキー1つでロケットを飛ばすよ。押したら上昇、離したら落下──重力に逆らうゲームを作ろう!
準備
スプライト「ロケット」を開く
| スプライトについて |
|---|
| スペースキーで上昇・下降するロケット。端に触れると初期位置に戻る |
| どんな役割か |
| スペースキーを押したらロケットが上に飛んで、離したら下に落ちるようにするよ。端に当たったらスタート位置に戻るようにしよう! |
実装
が押されたときでスタートしたら、大きさを ( ) %にするでロケットのサイズを50%にするよ。元のスプライトだと大きすぎるから、半分にして画面内で動き回りやすくしてるんだ。ロケットの出発地点を画面下のほう、座標(0, -150)にセットして発射準備完了
スプライトのサイズって実はゲームの操作感に直結するんだよ。画面の高さは360ドットしかないから、ロケットが大きすぎると上昇・落下の距離が足りなくてすぐ端に到達しちゃう。50%っていう値はこの画面サイズに合わせた絶妙な設定なんだ。
#2上昇処理を作る
ここがこの作品のキモ。スペースキーを押している間はロケットが上に飛んで、離すと重力で落ちてくる──そんな動きを作るよ。
まずずっとの中にもし ( ) ならでなければを置こう。以前使った「もし〜なら」に「でなければ」が加わったバージョンだね。スペースキーが押されていたらy座標を20ずつ増やして上昇させる。
上昇中は次のコスチュームにするで噴射アニメーションが切り替わる。
旗を押すとロケットが画面下に出てきて、スペースキーで上昇・離すと落下するようになったね。端に触れたらスタート位置に戻る。
#3落下処理を作る
スペースキーが押されていなければ-10ずつ変えて落下。
落下中はRocketship-eの静止コスチュームに戻るよ。
上昇速度20に対して落下速度10──上に飛ぶ力が落ちる力の2倍っていう非対称なバランス、気づいたかな。実はこれ、あの「Flappy Bird」と同じ考え方で、ちょん押しでも上がれるけど離すとゆっくり落ちていく気持ちよさを生んでるんだよ。ゲームの操作感って、たった1つの数値を変えるだけで全然違うものになる。その調整が大事。細部に神が宿るんやで(どした?)
#4着地処理を作る
端に触れたらy座標を-150にリセットする処理も入れてあるから、画面外に飛び出してもスタート地点に復帰するんだ。
次回はメッセージを使って、スプライト同士がやり取りする方法を学んでいこう!
まとめ
どうだった?「もし〜なら、でなければ」ブロックを使って、2つの動きをきれいに切り替えられたね。上昇速度と落下速度の数値を変えると手触りがガラッと変わるから、ぜひ色々と試してみて。次回はメッセージを使って、スプライト同士がやり取りする方法を学んでいくよ!