検索
連載

あなたの子どももできる、シューティングゲームやジャンプアニメの簡単な作り方Scratchで始めるプログラミング教育(4)(3/3 ページ)

ビジュアルプログラミングツールである「Scratch」を使って、プログラミングで何ができるのかを体験してもらう本連載。今回は、キャラからボールを発射するサンプルを作り、キャラが幽霊を撃つシューティングゲームにする。また、自分で新しい命令ブロックを作る方法も紹介する。

Share
Tweet
LINE
Hatena
前のページへ |       

「データ」分類の「変数」は「変化する値を入れるための器」

 スプライト(Giga)に書く命令は図9のようになる。


図9 Gigaに記述した命令

 今回は「秒数」「count」という2つの「変数」を作っている。「変数」とは、プログラムの実行中に変化する値を入れるための器のようなものだ。例えば、今回でいうと、「count」はBasketballがGoast1に当たった回数をカウントする変数だ。「秒数」は、制限時間60秒が1秒ずつ減っていく様子を表す変数だ。

 変数は「データ」分類から作ることができ、ステージの左上に値とともに表れる。

 まずは、変数「count」から説明しよう。スプライト(Goast1)に書く命令は図10のようになる。


図10 スプライト(Goast1)に書く命令

 ボールが幽霊に命中したときに「count」を1ずつプラスしていくことがポイントとなる(図10)。この場合の命令はGoast1内に記述している。赤色(Goast1)が薄茶色(Basketball)に接触したら、BasketballがGoast1に命中したことになるので、「count」を1ずつプラスしている。

 次に、変数「秒数」について説明しよう。図10で「秒数」を「60」にセットしていて、これが1秒ずつカウントダウンして「0」になったら、ゲームオーバーになる。「秒数」の値を「-1」ずつ変える命令はスプライト(ステージ)に書いている(図11)。


図11 スプライト(ステージ)に書く命令

 図9では「count」を「0」にし、図10では「秒数」を「60」にしているのは、先ほど説明した「初期化」だ。ここでは、「変数」を「初期化」していることになる。

 変数はプログラミングの中でも初歩的なことだが、理解が難しいかもしれない。今回のように「秒数」「count」のようにゲームを面白くするために必要なこととして子どもたちに教えれば、興味を持って何とか理解してくれるのではないだろうか。

「もし〜なら〜でなければ〜」という「条件分岐」

 また図11では、変数「秒数」が「0」になったら、「Giga」に「gameover」というメッセージを送って「すべてを止める」ようにしている。「秒数」が「0」になっていなければ、変数「秒数」の値を「-1」ずつ変えている。

 このような「もし〜なら〜でなければ〜」という命令も「制御」分類にあり、前回記事で紹介した「条件分岐」の1つだ。「もし〜なら」との違いを意識してほしい。

「GameOver」のメッセージ

 制限時間が切れてゲームオーバーになった際に、「ステージ」からGigaにメッセージを渡している。ステージ(図11参照)から送られた「gameover」というメッセージをGigaが受け取ったとき(図9参照)に「GameOver」とう文字を吹き出しに表している(図12)。


図12 制限時間に達して「GameOver」と表示した

 先ほどの「message1を送る」とは異なり、メッセージに名前を付けて分かりやすくしている。

次回は最終回。カメラやマイクでScratchを楽しもう

 次回は、いよいよ最終回。カメラやマイクを使ってスプライトを操作する基本的な方法を紹介するので、お楽しみに。

参考書籍

著者紹介

薬師寺 国安(やくしじ くにやす) / 薬師寺国安事務所

薬師寺国安事務所代表。Visual Basicプログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。

1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。

1997年に薬師寺聖とコラボレーション・ユニット「PROJECT KySS」を結成。

2003年よりフリーになり、PROJECT KySSの活動に本格的に参加。.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。

Windows Phoneアプリ開発を経て、現在はWindowsストアアプリを多数公開中。

Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。

Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。

Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。

Microsoft MVP for Development Platforms-Windows Platform Development (Oct 2014-Sep 2015)。


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る