Scratchでスプライトをキーボード操作する、簡単なレースゲームを作る&ペイントエディターの使い方Scratchで始めるプログラミング教育(2)(2/2 ページ)

» 2016年03月22日 15時30分 公開
[薬師寺国安PROJECT KySS]
前のページへ 1|2       

スプライトの歩くスピードをランダム(不規則)にしてみよう

 次に、ステージ上の猫の歩くスピードをランダム(不規則)に変化させてみる。スピードをランダムに変化させるとは、猫の歩くスピードが速くなったり、遅くなったりするということだ。

 プログラミングの仕方や解説については動画2を参照してほしい。

動画2 スプライトの歩くスピードをランダムにしてみよう

 以降、動画2のポイントをテキストでも補足しておく。

「演算」分類の「乱数」(不規則な数)を使う

 歩く速さをランダムに変化させるには、「制御」分類にある「1秒待つ」の箇所に、乱数を発生させる命令(「演算」分類内にある)を指定することで実現できる(図3)。「乱数」とは「数字がたくさんのサイコロを振って、出た目の数を使っている」というイメージでよいだろう。

図3 「1秒待つ」の「1」の部分に「0.01から0.5までの乱数」の命令を入れ込む

 猫に指定する命令は図4のような命令になる。

図4 猫の歩くスピードをランダムに変化させる命令

 猫を歩かせる処理は今まで通りで、図4の「(0.01から0.5までの乱数)秒待つ」での処理で、猫の歩くスピードがランダムに変化することになる。

 この処理を使用すると、レースゲームのようなものを作ることができる。次章で解説しよう。

猫を3匹並べて競争させる、レースゲームを作ってみよう

 最後に、猫を3匹並べて、競争させるサンプルを紹介する。いずれかの猫がゴールに到達した時点で全てが終了する。ゴールの赤い線に、3匹の猫の内1匹でも到達すれば、全てが終了する(図5)。

図5 3匹の猫のうち、どれか1匹がゴールに到着すると全てが終了する

 プログラミングの仕方や解説については動画3を参照してほしい。

動画3 キャラレースを作ってみよう

 以降、動画3のポイントをテキストでも補足しておく。

ステージ上に「背景」を読み込んで、「ペイントエディター」で赤い線を引く

 ステージ上に「背景」を読み込んで、背景の上に赤いゴールの線を引いておく(図2)。「ステージ」から「背景」を選択して、任意の背景を読み込むと、「ペイントエディター」が起動するので、「直線」と「赤色」を選択し、「線の太さ」を指定して、背景上にゴールを引く。

図2 「ペイントエディター」で「直線」と「赤色」を選択し、「線の太さ」を指定して、背景上にゴールを引く

「調べる」分類にある「衝突判定」でゴールかどうか決める

 ステージ上のスプライト(猫)を複製して3匹用意して、縦に並べておく。3匹の猫の命令は、ほとんどが同じ命令だ。ただ、出発時点のY座標の値だけは、3匹とも異なるため、Y座標の値は変更させておく。X座標の値は同じだ。

 命令は図3のようになる。これは「Sprite1の猫(一番下の猫)」の命令だ。残り2匹の猫の命令は「Y座標を●●にする」の「●●」の値が異なるだけだ。

 猫がゴールに到着したかどうかは、茶系統色(猫の色)がゴールの赤系統色に触れたときで判定をしている。3匹のうち1匹でも、ゴールの赤系統色に接触すると、プログラムが終了する仕組みになっている(図3)。

図3 Sprite1の猫の命令。3匹の猫が競争し、先にゴールに到着した猫で、全てが終了する命令

 この「茶系統色(猫の色)がゴールの赤系統色に触れたとき」はプログラム上では「〜が〜に触れたとき」という「調べる」分類にある「衝突判定」を使っている。この「衝突判定」というのはゲームなどでよく使われるプログラミングの考え方だ。

プログラムのコピーはスプライトごとにもできる

 命令は、残り2つのスプライトにコピーできる(図4)。スクリプトエリアの命令の固まりを、Sprite2の上にドラッグ&ドロップすることで、Sprite2にコピーできる。

 コピー方法の詳細については、動画3の中で解説しているので、参照してほしい。

図4 スクリプトエリアの命令の固まりを、Sprite2の上にドラッグ&ドロップする

次回は、キャラクターをマウスの動きに着いていかせて、「ペン」で線を描く

 次回は、まず今回紹介したペイントエディターで図形を描く方法を紹介し、キャラクターをマウスの動きに着いていかせて、「ペン」で線を描く命令を使う方法、さらに猫のクローン(複製)を作る方法も紹介するので、お楽しみに。

参考書籍

著者紹介

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

薬師寺国安事務所代表。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)。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。