
作成する3つのゲームの概要を紹介します。
左上にあるロボットを右下のゴールに誘導するゲームです。
ロボットについている赤いボタンがブロックに触れると一定の方向に回転して進行方向を変えます。ブロックをうまく置いて、ゴールまで導きます。
ゲームのステージとスプライト(ロボットとブロック)を作成します。
Scratchにはステージやスプライトを作成するためにペイントエディタが用意されています。
背景に色を塗ったり、障害物やゴールを置いて、ゲームのステージを作ります。
赤いボタンのついたロボットと、マウスクリックでステージに置くブロックをスプライトとして作成します。
今回はベクターモードで作成していきます。
作成したステージの上でロボットを動かしてみましょう。
ロボットは赤いボタンがついている方向に動いて、ブロックにぶつかると右に90度回転します。
クリックされたところに新しいブロックを置くにはどうしたらいいのでしょう?
ブロックをマウスポインターにくっつけておいて、マウスが押されたら、その場所にスタンプするようにします。
拡張機能『ペン』にある『スタンプ』を使います。
どうしたらゲームオーバーになるのでしょう。
ロボットのボディ(黒いところ)がブロックに触れたらということにします。
また、ゲームオーバーになったら、ロボットの動きを止めて、ゲームオーバーらしい音も出してみましょう。
ゲームクリアは、もちろん、ロボットがゴールに入ったときですが
ここでは、ロボットの赤いボタンがゴールの緑色に触れたならということにしましょう。
ボールがステージ下の赤い海や右から流れてくる赤いブロックに触れないよう上手にジャンプさせてゴールを目指すゲームです。
Scratch上に用意されたエディタを使って、ゲームのステージとスプライト(ボール君、ブロック、ゴールの島)を作成します。
背景に色を塗って、赤い海を描きゲームのステージを作ります。
ゲームの主役ボール君はグラデーションをつけて立体感を持たせます。ゴールの島と障害物の赤いブロックもスプライトとして作成します。
今回はベクターモードで作成していきます。
作成したステージの上でブロックを動かしてみます。
ブロックは右から左に動いて、ブロックが左端までくると、また、右端から出てくるようにします。
スプライトにジャンプさせるにはどうしたら良いのでしょう?
y座標を変化させることで表現します。y座標の変化には変数を使います。
ボールが上がっていくときは、変化をだんだん少なくし、ボールが落ちてくるときは、変化をだんだん大きくして、よりジャンプらしく見せます。
どうしたらゲームオーバーになるのでしょう。
ボール君がブロックか海に触れたらということにします。
ゲームオーバーになったら、ゲームオーバーらしい音も出して、もうジャンプできないようにします。
また、ボール君は海に沈め、ブロックの動きも止めますよ。
ゲームクリアは、「ゴールの島にうまく乗れたとき」としましょう。
ゴールの島は、赤いブロックが5回出現したあとに出てくることにしますよ。
ゲームのプレイ中は何か音楽を流してみましょう。また、ゲームクリア時はクリアを表す音を入れてみましょう。
ボールをタイミングよく落下させて、左から流れてくるバケツに入れるゲームです。
バケツが流れてくるスピードはどんどん速くなります。
ステージは自分で作成し、スプライト(バケツ、ボール、ボールを置く台)は用意されたものを使います。
背景は、ゲーム中とゲームオーバー時と2種類作るよ。
動きの「()歩動かす」を使って、バケツを右から左に動かします。
右端に着いたら、左端に移動し、ゲーム終了まで動き続けます。
矢印キーを押すとボールが転がるようにします。
そのためには、まず、左矢印キーを押すと、台が左に傾くようにしましょう。
傾けた台は、どのタイミングで元の水平にもどしたらよいのでしょう?
Paddleが傾くとボールが転がり落ちるようにします。
Paddleが水平のときは、ボールを動かさず、傾くと、Paddleの傾きにそって、動かすようにしますよ。
バケツにボールが入ったら「1点」としましょう。
新しい変数「得点」を作成して、ボールがバケツに入るたびにカウントアップします。
バケツが流れてくるスピードは15秒ごとにアップさせます。
スピードアップするときは、「スピードアップ」と言ということにします。
そして、4回スピードアップしたら終わりにしますよ
【Scratch(スクラッチ)1】の宇宙犬ドットの冒険、【Scratch(スクラッチ)2~5】の小太郎君シリーズは、ストーリーを作る学習コースでしたが、【Scratch(スクラッチ)6】は、はじめてのゲームづくりのコースです。
ゲームは、勝敗を決める遊びです。ゲーム設計にあたっては、なにが勝ち(成功)でなにが負け(失敗)なのか、プレイルールを明確に決める必要があります。また、プレイヤーがゲームを楽しめるよう、ゲームを設計する必要があります。だれもが制覇できないゲームでは遊んでもらえないですし、だれでも簡単に制覇できてしまうゲームでは、あきられてしまうので、プレイヤーの視点に立ち、プレイヤーの使用感を考えて、ゲーム設計を行うことが大切です。
このコースでは、グラフィカル操作でプログラムを作成できるScratchを使い、ゲームの設計手法の基本を学びます。Scratchは、初心者でもとっつきやすい簡単な操作性が特徴です。さらに、Scratchは、WEBブラウザ上で開発ができますので、開発ツールのインストール設定の手間がかかりません。プログラミング初心者にとってもっとも着手しやすい開発ツールの一種なのです。簡単に使えるツールだからといって簡単なゲームしか作れないというわけでもありません。Scratchユーザの中には、プロ顔負けの作品を発表している熟練ユーザも存在します。Scratchの機能を極限まで使い倒したプログラムが開発できるユーザであれば、その後、より高度な機能を持つゲーム開発ツールにシフトしたとしても、素晴らしい作品を作ることができることでしょう。ゲームづくりにおいてまず学ぶべきことは、ゲームの設計です。プログラミングのファーストステップで、難易度の高いプログラミング言語の学習に着手してしまと、プログラミング言語の習得期間中にプログラミングに挫折してしまう学習者が多発しているのが、世界のプログラミング学習の現実です。難解なプログラミング言語の習得は後回しにして、より簡単にプログラムがつくれるツールで、より早くプログラム作品を完成させること、プログラムを完成させるのに必要なプログラムの設計のノウハウを徹底的に理解することを重視した学習法を選択した方が、結果として、プログラミングへの興味も高まり、習得の早道になると思います。簡単に使えるツールでも、そのツールの可能性を最大限いかせば、プロ顔負けのたハイスペックゲームをつくることが可能であることをよく覚えておいてください。
このコースでは、ゲーム開発のファーストステップに最適な3種類のゲームを作ります。このコースを最後まで学習し、講義内容をよく理解した受講生の皆さんは、ゲームづくりを身近に感じることができるようになり、様々なアレンジゲームをつくりたくなるに違いありません。
※このコースでつくるゲーム
ブロックを置いてゴールをめざそう!
ロボットについている赤いボタンがブロックに触れると、ロボットは右方向に90度回転しますが、ロボットのボディがブロックに触れてるとゲームオーバーになってしまいます。ここでは、プレイヤーが、ブロック(棒線)をマウスで書いて、ロボットがゴールにたどり着くよう、制御するゲームを作ります。
ボール君、赤色に触れないで!
ステージの中で敵や障害物を避けて、ゴールにたどり着くゲームは、人気ゲームのひとつです。このセクションでは、ボールをジャンプさせて、ボールに近づいてくる障害物(赤色のブロック)をよけてゴールをめざすゲームを作ります。
バケツにボールを入れよう!
コンベア上を移動するバケツの中に、高台からボールを落とすゲームを作ります。時間内に、バケツにボールをいくついれられるか競います。バケツの移動スピードをあげていくことで、ボールをバケツにいれる難易度をあげていきます。