「ゲームって完成品を見ると難しそうに見えるけど、実際はどう動いてるの?」——教室でもよく聞かれる質問です。
今回は、Scratchで本格的なアクションゲームを作るときに必ず必要になる「左右移動・重力・ジャンプ」の仕組みを、ぴょろ先生が前編・後編に分けてじっくり解説します。
「なんとなくできた」から「なぜ動くかわかる」へ
Scratchでゲームを作り始めた子の多くは、最初はサンプルのコードを真似しながら「なんとなく動く」ところまでたどり着きます。
でも、そのまま進めていくと必ずつまずく瞬間が来ます。「キャラクターが壁にめり込んでしまう」「ジャンプが変な動きをする」——そこで必要になるのが、仕組みの理解です。
教室で多くの子を見てきて感じるのは、「なぜこう動くのか」がわかった瞬間に、子どものプログラミングへの向き合い方が一段階変わるということです。
闇雲にブロックを並べる段階から、目的を持って設計する段階へ。この動画はまさにそのジャンプを後押しする内容です。
アクションゲームの土台:左右移動の仕組み
左右移動の基本は、矢印キーを押したときにX座標を増減させるだけです。右キーが押されたら座標を増やし、左キーが押されたら減らす。これ自体はシンプルです。
ただし、そのままでは壁にめり込む問題が起きます。
この動画で紹介しているのが「一旦動かしてから、当たっていたら戻す」という考え方。
「当たったから止める」ではなく「動かしてみて、ダメだったら戻す」——この発想の転換が、Scratchのゲーム作りで非常に重要なポイントです。
重力と自然なジャンプの作り方
ジャンプの動きは「重力」という変数を使って表現します。
スペースキーを押したとき重力の値をプラスにし、毎フレームその値を少しずつ減らしていく。
すると「勢いよく飛び上がって、だんだん落ちてくる」という物理的に自然な動きが生まれます。
単純に繰り返しを使って座標を変えるだけの方法と比べると、圧倒的に「ゲームらしいジャンプ感」が出ます。
このような変数を使った動きの設計は、算数・理科の「変化の規則性」を自分で体感しながら学ぶことでもあります。
数値を小さく変えれば月面のようにゆったりしたジャンプに、大きくすれば素早いジャンプになる。数字の意味を試しながら調整していく過程は、まさに実験と同じプロセスです。
「地面にいるか・空中にいるか」を変数で管理する
アクションゲームのよくある問題のひとつが「ジャンプが無限にできてしまう」バグです。
これを防ぐには、キャラクターが今どこにいるかを変数で管理する必要があります。
足元の色が地面の色に触れていたら「地面にいる」、触れていなければ「空中にいる」——この判定をきちんと設計することで、1回目のジャンプと2段ジャンプを正確に制御できます。
状態を変数で管理するというこの考え方は、より複雑なゲームを作るときにも繰り返し登場する基礎概念です。
この動画で学べること:前編のまとめ
前編では次の4つのポイントを解説しています。
- 左右の移動はX座標の増減で作る
- 壁へのめり込みは「一旦動かして戻す」で防ぐ
- ジャンプは重力変数を使って自然な動きにする
- 地面にいるか・空中にいるかを変数で管理する
これらを理解すると、「ただキャラクターが動くだけ」のプログラムから「ちゃんと遊べるゲームの土台」を作れるようになります。
後編ではコインの仕組み・敵の動き・ステージクリアの処理が解説されますので、前後編あわせて見ることをおすすめします。
動画でより詳しく確認しよう
この記事で取り上げた内容は、プログラメイクの教室長、ぴょろ先生が動画の中で実際のScratchプログラムを画面で示しながら解説しています。
テキストでは伝わりにくいブロックの配置や変数の動きも、動画を見れば直感的に理解できます。ぜひ動画と合わせてご覧ください。
プログラメイクでScratchのゲーム作りを学ぶ
東京都中央区のプログラミング教室「プログラメイク」では、ScratchによるゲームプログラミングをはじめとしたICT教育を小学生・中学生向けに提供しています。
プログラミングの習い事として、週1回から通えるカリキュラムで無理なくステップアップできます。
重力の仕組みやジャンプのプログラムなど、今回のようなScratchの始め方から本格的なゲーム制作まで、お子さんのペースで学べる環境です。
「中央区 プログラミング教室」を探している保護者の方は、ぜひ一度体験授業にお越しください。
