はぐくもう「つなげるちから

さのプログラミング教室

鎮守の森教室

無料体験会実施中!

多段ジャンプ(前編)【Scratch】

前回、重力が効いたようなジャンプの表現について記事にしました。

前回の記事「重力ジャンプ【Scratch】」

ジャンプっぽいジャンプ。

制作途中に「空中でスペースキーを押すと、そこからジャンプする」というバグ(プログラム上のミス)が発生しましたが、その時に

「これをうまく利用すれば『多段ジャンプ』ができるな。」と感じたので、今回実際に作ってみます。

1.無制限の多段ジャンプ(前回のバグ)

前回のプログラムを流用して、まずは、空中で何回でもジャンプできるようにします。

多段ジャンプを防いでいるプログラムは、下の条件です。

黒色が地面で、地面にふれている時だけジャンプできるような条件にしている。

この条件のうち、「黒色に触れた」を削除すれば、無制限多段ジャンプができるようになります。

無限多段ジャンプ。
空中で何度でもジャンプできる。

2.問題発生、再び。

ここで再び問題を発見。

スペースキーを押し続けると、ジャンプどころか、お空へ飛び立っていってしまいます。これではジャンプではなく、発射。

さらば、地球よ(再放送)

これを防ぐには、「スペースキーを押した状態」と「スペースキーを離した状態」を判別できる仕組みを作ればいいのでは?と考えました。

3.スペースキーを押しているか、離しているかの判別プログラム

a.変数「スペースキー」を作る。

スペースキーを押したときに「1」
スペースキーを離したときに「0」

となるような変数を作り、それを判別の仕組みに組み込みます。

変数「スペースキー」を作る。
b.変数「スペースキー」の初期値を0にする。

初めはスペースキーを押していない状態から始まりますので、「旗」を押したら、初期値は「0」にします。

変数の初期値はどちらも0。
c.スペースキーを押すプログラムのところで「スペースキー」を「1」にする。

今回はジャンプの時にスペースキーを押すので、ジャンプのプログラムの後ろに変数「スペースキーを1にする」を組み入れます。

ジャンプと同時に「スペースキー」=1になる。
d.スペースキーを離したかどうかの判定をするプログラムを入れる。

Scratchのブロックには「〇〇キーを離した時」というブロックはありません。

なので、否定のブロック「〇〇ではない」を使って、

『「スペースキーを押した」ではない』というブロックを作ります。そして、それを条件式に組み入れます。

『「スペースキーを押した」ではない』なんて、日本語的におかしいけど、仕方ないです。

4.「スペースキー押してるかどうか」判定のプログラムを、ジャンプのプログラムに組み込む

下のようになる。

説明し忘れてましたが、今回、ジャンプの仕組みを「定義」ブロックにまとめてみました。

で、試してみた結果がこちら↓

変数「多段ジャンプ:スペースキー」が1の時はスペースキーを押し続けている。

押し続けていても、落下していることが確認できる。

5.終わりに(後編へ続く)

この1回で多段ジャンプの記事は終える予定だったのに、思いのほか手間取ったので、今回はここまで。次回は、多段ジャンプの回数を制限するプログラムを作ります。これができれば、「ラムラーナ」のような「2段ジャンプまでしかできないエルミーザ教授」や、スマブラの「カ○ビー」のような7段ジャンプも可能になる…はず。

今回のプログラムの全体。「定義ブロック」を使って、プログラムを見やすくしました。

さのプログラミング教室は、「はぐくもう!つなげるちから」が合言葉の教室です。
同じ時間のクラスには、5人程度のお子さんが入室しますが、一人一人の興味・進度に合わせた課題を提供しますので、自分のペースで学ぶことができます。学習過程があり、同じスタート地点からスタートしますが、理解度やがんばりに応じて、どんどん次のステップへ進むことができます。


レッスンを無料で体験できます。
LINE公式に入り、「無料体験申込」を
タップしてお申し込みください。

画像に alt 属性が指定されていません。ファイル名: line_test_lesson-300x202.jpg
LINE公式よりお申し込みください
タイトルとURLをコピーしました