【初めてのスクラッチ】ビーム、光線を発射する方法

プログラミング

 

2020年から小学校でもプログラミングの授業が行われることが決まったことで、プログラミングに関心が出てきた人も多いのではないでしょうか。

「Scratch(スクラッチ)」は子供向けのプログラミング言語ですが大人でも十分に楽しめます。いきなり挫折するということがないので初心者の人にはおすすめです。

ここでは、

  • スクラッチを始めてみたい
  • 基本的な動かし方を知りたい
  • スクラッチ・コミュニティで聴くのはまだちょっと気おくれがする

という人に――自分自身の備忘録をかねて――特定の動作を説明します。簡単なものばかりなので一度見ながらやってみてください。

 

関連記事:「スクラッチで変数を使ってランダムな数字のリストを作る方法

 

 

スポンサーリンク




スプライトからビームや光線を発射する方法

 

ビームや光線という言い方自体が古くて年がバレそうですが、なんて言えばいいのか分からないのでこう呼ばせていただきますw

 

好きなスプライト、背景を作る

 

まず最初にスプライトを作りましょう。

 

ネコのままだと感じが出ないので新しいスプライトを作ります。

スクラッチ スプライト作成

 

順番はこのとおりでなくてもかまいません。

 

ちょっと悪そうな魔法使いと背景は赤い世界にしました。

魔法使いには「Wizard」というもともとの名前がついていますね。

 

そのままだとWizardは真ん中よりにいます。ビームを撃つにはもう少し端にいてほしいですから左側に寄せることにしたのがこの画面。

スクラッチ やり方

 

これには画面真ん中にある「ブロックパレット」から下の2つをドラッグして右側の「スクリプトエリア」でくっつけてください。

 

■「『緑の旗』がクリックされたとき」ブロック(制御エリア)

⇨プログラムを作動させるときに押すボタンです。必ず使います。

 

■「X座標を〇、Y座標を〇にする」ブロック(動きエリア)

X座標は横軸、Y座標は縦軸です。ともに真ん中が0なので好きな場所に調整してください。

 

 

スクリプトを作るときの注意点

 

このとき注意することはスクリプトエリア右上のスプライトを必ず確認すること。

 

今はWizard1人ですから大丈夫ですが、実際にはいくつものスプライトの動きを組み立てる作業になります。

この部分を確認しておかないと、よく見たら全然違うスプライトのプログラムを作っていたなんてことになりかねないので必ず組み立て前にここをチェックする癖をつけてください。

 

 

ビーム、光線を作る

 

スプライト一覧から新しく選んでもいいのですが、ここでは自分で描いてみることにしましょう。

先ほど新しいスプライトを作るためにクリックしたボタンの横に筆の絵のアイコンがあるのでそれをクリック。するとこのようなペイントエディタの画面になります。右下を見てください。

scratch

 

ビットマップモード

小さい点の集まりで絵を描く

  • メリット マウスでドラッグした通りに絵を描ける
  • デメリット 拡大した時にギザギザが目立つ
ベクターモード
  • メリット 拡大してもきれいに見える
  • デメリット 使いこなすには練習が必要

 

ここでは少しずつ大きくなる光線を作るので「ベクターモード」で行います。

 

絵はなんでもいいですがまずは簡単なものから。右端のこちらをクリック。

 

左下に出てくるこちらをクリック。

scratch

 

塗りつぶさなければ左ですね。お好きなほうで。

 

丸のままではつまらないので形を変形させてみましょう。

スクラッチ やり方

 

これを使うとこんなふうに形を変形させられます。

スクラッチ 方法

 

光線の名前は「ベッチョ」にしました。左上の枠に入力すれば入ります。

 

絵はちゃんと「ステージ」に反映されていますね。

スクラッチ スプライト

 

 

光線(ビーム)を発射させる方法1~メッセージを送る

 

プログラミングの正解はひとつということはなく、いくつかの方法がある場合がほとんどです。

 

まずひとつ目の方法から説明します。

 

Wizardのスクリプトで「メッセージを送る」

 

「Wizard」のスプライトをクリックしてそのスクリプトエリアを開き、まず最初に下の3つをドラッグします。

 

  • 旗がクリックされたとき⇨動作の開始
  • 隠す⇨光線は最初から見えているわけではないので見えなくする
  • もし~なら」「スペースキーが押された」組みあわせ⇨今回はスペースキーが押されたときに光線を出す仕様にするため

 

「スペースキーが押されたとき」にベッチョにメッセージを送るようにしたい

「イベント」欄の「メッセージを送る」の「メッセージ1」をクリック

 

するとこのようになります。

スクラッチ

 

新しいメッセージ」をクリックすると以下の画面が出るので好きな名前を入力してください。ここでは「ベッチョ発射」にしました。

スクラッチ メッセージ

 

それを先ほどのブロックにはさみます。

スクラッチ メッセージを送る

 

このメッセージはプログラムの間ずっと稼働していてほしいので「ずっと」ブロックではさみこみます。

 

これでスペースキーを押すと他のスプライト(ここではベッチョ)にメッセージを送るプログラムができました。

 

 

光線のスクリプトで「メッセージを受け取ったら」動き出す

 

スプライトで「ベッチョ」を選択し、ベッチョのスクリプトエリアを開きます。

 

「イベント」のブロックにこのようなブロックができているはず。

 

「ベッチョ」はWizardから発射されるものですから、ベッチョはメッセージを受け取ったらまずWizardのもとへ行く必要があります

 

「動き」ブロックの中の「~へ行く」ブロックを下のように「Wizardへ行く」に変更し、「ベッチョ発射を受け取ったとき」とくっつけます。

スクラッチ へ行く

 

続けてこのように組み立てます。

スクラッチ スタンプ

 

ベッチョ発射のメッセージを受け取る

Wizardへ行く

スタート時は「隠す」なのでここで「表示する

そのままだとWizardより大きいので「大きさを〇%にする」で小さくする

「〇歩動かす」「大きさを〇ずつ変える」を「〇回繰り返す」ことで少しずつ大きくなりながら進む

 

ただ、これだけだと光線は発射されたらWizardから完全に離れて飛んでいきます。これだとちょっと感じが出ませんね。

スクラッチ スクリプト

 

そこで使うのが先ほどの「スタンプ」です。

この「スタンプ」ブロックにより、同じ見た目の画像を作ってステージに貼りつけることができます。

これを使うとこうなります。

スクラッチ スタンプ

 

とちゅうにたくさん表示されているのがスタンプで、最後の1個がスプライトです。

 

なぜそれが分かるかというと、光線を消すときに分かります。

 

光線はずっと表示されているのは変なので撃ち終わったら消さなければなりません。

 

そのときのスクリプトで「スタンプ」と同じ「ペン」エリアにある「消す」だけを使うとこうなります。

スクラッチ スタンプ

 

とちゅうのスタンプは消えますが最後のスプライトが残る。

 

逆に、動きエリアの「隠す」だけ使って「消す」を使わないと、

スクラッチ スタンプ 消す

 

最後のスプライトは消えますがとちゅうのスタンプが消えずに全部残ります。

 

なので光線が一定の距離を進んだ後に「1秒待つ」てから「消す」「隠す」で光線を見えなくしたのがこのスクリプトです。

 

ちなみに「〇〇の効果を〇ずつ変える」を使うこともできます。

これは「渦巻きの効果を25ずつ変える」をつけてみたところ。ベッチョが渦巻き状に変形して飛んでいきます。

スクラッチ 渦巻き

 

 

ビーム(光線)を発射する方法2~クローンを使う

 

次は光線を「クローン」を使って表示する方法です。

 

まず先ほどの画面。ベッチョのスクリプトをご覧ください。

スクラッチ ビーム

 

この赤枠で囲んだ部分、「15回繰り返す」から下を切り離し、そこへ「制御」エリアから「自分自身のクローンを作る」をくっつけます。

スクラッチ クローン

 

そうしたら今度はスクリプトエリアの別の場所に「クローンされたとき」のスクリプトを作ります。

元のスクリプトにあった「表示する」をこちらに移動。

スクラッチ クローン

 

ここではクローンを「X座標を〇ずつ変える」で進ませることにします。

スクラッチ クローン

 

さらに「マウスのポインターに触れた」をドラッグ。

▼をクリックして「マウスのポインター」⇨「(はし)」に変更しておいてください。

スクラッチ クローン スクリプト

 

そこへ「~まで繰り返す」を持ってきます。

スクラッチ クローン

 

これらを組み合わせてることで、ベッチョが、

 

(画面の)端に触れるまでX座標を10ずつ変えていく、つまり、

 

端っこに着くまでベッチョが右側に飛んでいくスクリプトができます。

スクラッチ クローン

 

が、まだ完成ではありません。

なぜかというと、このままではベッチョが端っこで残ってしまうからです。

スクラッチ クローン 端

 

なので最後に「このクローンを削除する」をつけたします。

 

これで端についたクローンが最後にスッと消えていきます。

 

 

んが、しかし。

 

じつはこれでもまだ完璧じゃありません。

というのもゆっくりとスペースキーを押している間はいいのですが、

続けて撃とうとすると光線が画面の途中までしか行かないのです。とちゅうで消えてしまう。

 

 

※スマホで撮ってるから写り込んでるww 見づらくてゴメンナサイです。

 

これは「ベッチョ発射」のメッセージをベッチョ本体だけでなく、クローンも受け取ってしまうから起こる現象です。

覚えていますか?

 

「ベッチョ発射」のメッセージを受け取ったとき

Wizardへ行く

 

つまり、発射されて進んでいるクローンはメッセージを受け取ることによってまたWizardへ戻ってしまうのです。だからそれ以上前に進まなくなる。

 

これを修正する方法はこうです。

 

ベッチョではなく、Wizardのほうでクローンを作る

 

順番に説明します。

 

1.Wizardのスクリプトでベッチョのクローンを作る

 

まずWizardのスクリプトから「メッセージを送る」ブロックを外します

そこに「スプライト1(ベッチョ)のクローンをつくる」をくっつけます。

順番はどちらでもかまいません。

スクラッチ クローン

 

WizardはこれでOK。

 

「ベッチョ発射を送る」のブロックは削除して大丈夫です。

 

 

2.ベッチョのスクリプトでクローンを表示させる

 

次はベッチョです。

「動き」エリアの「マウスのポインターへ行く」を「Wizardへ行く」に変えて「クローンされたとき」の下につけます。

スクラッチ

 

これでOK。簡単ですね。

 

これによりWizardの指示を受けたベッチョは、

クローンされたときに表示され、端に着くまでX座標を進んでいきます。

さっきのように発射直後にメッセージを受けても動き出したクローンは止まりません。連射も可能になりました。

 

 

 

ちなみに「スタンプ」を使うとタイトル画像の写真のようになります。

 

 

スクラッチ、大人でも楽しめる

 

というわけで、2つの方法をご紹介しました。

個人的にはクローンのほうが楽かなあと感じます。

ペイントエディタで描いたものを使いましたが、もちろん一覧にあるスプライトを使ってもかまいません。光線じゃなくミサイルのように撃つことも可能です。

 

やっぱりスクラッチは操作が楽!

ブロックを組み合わせるだけだからあまり難しく考える必要がないのもいいですね。休みの日に本を読みながらあれこれ試しているとあっという間に時間が過ぎてしまいます。

 

スクラッチのおすすめの本ならこちらを見てみてください。

 

関連記事「『親子で学ぶプログラミング超入門』で初心者だって作れる簡単ゲーム!

 

関連記事「『どすこい!おすもうプログラミング』は子供向けの本だけど大人が読んだって読みごたえあり!

 

この2冊はスクラッチを始めようとする人には本当に役に立つのでぜひ読んでみてください。

『親子で学ぶプログラミング超入門』

『どすこい!おすもうプログラミング』

 

の順で読むのがおすすめです。

 

 

 

コメント