【簡単・便利】Scratchで関数を作る方法を画像19枚で解説

【簡単・便利】Scratchで関数を作る方法を画像19枚で解説

※当サイトには広告が掲載されています。ご了承くださいm(_ _)m

Scratchで関数を作る方法が知りたいな。

こんな疑問にお答えします。

本記事の内容
  • Scratchで関数を作る方法を画像19枚で解説

普段はC言語などでよく関数を作っているエンジニアの私ですが、Scratchで関数を作るときに少し戸惑いました

なので、関数の概念をご存じの方に向けてScratchで関数を作る方法を解説します。

関数の概念についてはこちらの記事をご覧ください。本質を書きました。
 【本質】プログラミングの「関数」をわかりやすく解説【概念を理解】
スポンサーリンク

Scratchで関数を作る方法を画像19枚で解説

まずは全体像の把握から

Scratchで関数を作るには「ブロック定義」を使用します。

「Scratchで関数を作る」とはオリジナルのブロックを作るということです。

作り方の説明の前に、実際に作った関数をご覧ください。ゴールをイメージすると理解しやすくなると思うので。

「定義」ブロック部分が作った関数の定義です。
「旗が押されたとき」ブロック部分が作った関数を使用したプログラムです。

この関数は指定する歩数だけ右に移動する関数です。

旗をクリックするとまずは作った関数が呼び出され、指定する歩数(20歩)だけ右に移動します。その後に作った関数の次の処理が実行され「こんにちは!」と表示します。

実行するとこんな感じです。

歩数を30に指定すると、30歩右に移動するようになります。

実行するとこんな感じです。

では、次はこの関数を例に関数の作り方を具体的に解説します。

関数の作り方と使い方

関数の作り方

まずは、ブロック定義の[ブロックを作る]をクリックします。

拡大するとこんな感じです。

するとブロックを定義するのに必要な情報を設定する画面が開くので、まずは関数名(ブロック名)を入力します。

今回作るのは「○歩移動」関数です。

次に引数を設定します。「移動する分の歩数」を引数にします。

Scratch特有の情報として「ラベルのテキストを追加」があります。

これはプログラムには関係ないコメント部分で、既存の命令ブロックで言うと「(10)歩動かす」の「歩動かす」部分にあたります。

今回作る関数では「歩右に歩く」と入力しておきます。

(歩数)のところに数字を入力すれば「(20)歩右に歩く」と表示されます。

これらを入力すると、関数の定義ブロックが編集エリアに表示されます。

あとは関数の中身(処理)をプログラミングしていきます。関数の定義ブロックの下に処理を作るだけです。

これでオリジナル関数(ブロック)の完成です!

関数の使い方

次はこのオリジナル関数を使ったプログラムを作ります。

これも簡単で、他の命令ブロックと同じように作った関数(ブロック)を使うだけです。

これで完成です。

旗をクリックすると自作した関数が実行され、その次の「こんにちは!」という命令が実行されます。

これが関数の基本的な作り方と使い方です。
次は関数に関わるその他の操作について解説します。

作った関数を再編集する方法

作った関数を再編集するには関数定義ブロックを右クリックして[編集]をクリックすればいいです。

すると編集画面が開きます。

これだけです。

「画面を再描画せずに実行する」とは?

最後にブロックを作る画面で登場した「画面を再描画せずに実行する」について解説します。

これに✓を入れると処理途中の動きを実行結果画面に描画しないで、最終結果のみ描画します

今回作った関数はx座標を1ずつ変えるので、✓を入れないと歩数(20)回スプライトを描画します。

録画の都合で足が動いていません。。。実際のプログラムは足がバタバタバタと動きます。

しかし、✓を入れると途中の動きを描画しないので、一気に移動したような動きになります。

この違いです。

歩いている様子などの過程を表現したかったら✓を外し、処理に時間がかかるような関数の場合は✓をするといいでしょう。

まとめ:わかってしまえば簡単です

最後にScratchで関数を作る方法のおさらいです。

  • 「ブロック定義→ブロックを作る」で関数を作る
  • 関数の定義は定義ブロックの下に処理を作る
  • 自作関数を使うときは自作のブロックを他のブロック同様に使う

以上です。関数を使いこなせれば、色々なプログラムが作れますよ~。

また、その他のScratchに関する解説は下記の記事をご覧ください。使い方だけでなく本質がわかるように解説しています。

では、Scratchを楽しんでください(^_^)/~

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