スポンサーリンク
Scratch

Scratchでプログラムを開始する

Scratch

Scratchでプログラムを開始するときは、「旗が押されたとき」イベントを使います。
同時に複数のプログラムを実行したい場合はどうでしょう。
「旗が押されたとき」を使ってもいいですが、「メッセージを送る」を使う事をお勧めします。

スポンサーリンク

プログラムを開始する方法

プログラムを開始するにはを使います。

などのイベント部品を使う事もできますが、本来の使い方はゲームの中で操作のためにキーが押されたことをキャッチするイベントです。
基本的には、を使いましょう。


複数のプログラムを開始する方法

ゲームなどを作っていると、同時に複数のスプライトを動かしたい時があります。
そんな時は、スプライトごとにを使えばよいです。

キーが押されたらプログラムを開始する方法

キーが押されるのを待って動かしたいプログラムはを使えばよいです。
ただ、この部品を使ったときはスタートの旗が押されなくてもイベントを受け付けてしまします。
ゲームがスタートしてないのに、を使ったプログラムだけ動いてしまいます。
ちょっと格好悪いです。

そこで、を使います。
何か1つのスプライトに1つだけを設置します。
(どのスプライトに浸けるか迷ったらステージに設置したらいいです)
そして、

このようにスタートの後、メッセージを送ります。
すると、メッセージを受け取ったプログラムはすべて同時に動き始めます。

お勧めの開始方法

プログラムを開始する方法は複数あることがわかりました。
どの方法でも構わないのですが、プログラムをきれいに作るために、どれか1つの方法を使う事をお勧めします。

私がお勧めの方法は、を使う方法です。
その理由は、

1、
プログラムの開始、キーが押されたときの両方に対応できるからです。
 のイベントは動きが悪いのも理由です。

2、
初期化などの前処理を作りやすい。(誤作動しないプログラムを作れる。)

からです。


2つ目の説明をしていませんでした。
複雑なプログラムを作り始めると、初期処理などの共通処理をしておきたいことがあります。

このように、メッセージの前に初期化などを置くことで、メインのプログラムが動く前に処理することができます。

悪い例として、このようなプログラムを作ったとします。

そして、このプログラムは初期化1,2両方が終わってないと誤作動するようなプログラムだったとします。

このような書き方をした場合、初期化1と初期化2のどちらが先に実行されるかわかりません。
プログラムが誤作動する原因になります。

そこで、次のようにメッセージを使うのが良いです。


このようにすることで、確実に初期化1,2を実行してから、矢印キーが押されるイベントを開始することができます。

を使うと、絶えずイベントを受け付けている状態なので、初期化などが動く前から動作してしまっています。
これも誤作動の原因になります。
「キーが押されたとき」の部品はプログラムを単純に作ることができますが、正確な動きをさせるのは難しい部品になっています。

コメント

タイトルとURLをコピーしました