最近むずかしいゲーム作りの記事が多かったので
わりとカンタンな地球ぼうえいゲームを作ってみましょう。
まずはこちらのURLを確認してください

Earth Defense

http://scratch.mit.edu/projects/35708746/
WS0001


を押したあと、「Start」のボタンを押してゲームスタートです。
ゲームが始まると、↑ボタンで進む ・ →←ボタンで回転を使って
地球にむかってくる隕石をこわしてください。

隕石が3回地球にあたるとゲームオーバーというゲームです。

ではさっそく「中を見る」でスクリプトを確認してみましょう。 
 

まずは画像などの準備をしよう

必要なスプライトは3つ です。
WS0003
スプライトの名前は自由につけてください。
Ship:宇宙船の絵
Earth:地球の絵
asteroid:隕石の絵 です。
あとはタイトル画像や説明文なので好みで追加してください。

使う変数は4つです。
WS0002
 変数の名前は自由につけてください。
Livesは地球のライフ
Pointsは隕石をこわした数
difficultyはゲームのむずかしさ
speedは隕石のスピード

このほかにハイスコアなどの変数もありますが
基本的な変数はこの4つだけでOKです。

宇宙船を動かそう

Ship(宇宙船)のスクリプトはこんなかんじです。
WS0004
を押されたときに、地球のライフ(Lives)を3に初期化しています。
「ずっとブロック」でかこんで、「もしブロック」で↑→←キーのはんていをしていますね。

今回は宇宙船視点の移動なので、コスチュームを反転させたり
座標を変えたりする必要がないので、とてもシンプルですね。

ゲームスタート(game start)のメッセージを受け取ったときに
宇宙船の場所を初期化しています。

隕石(asteroid)に触れたときに、スコア(points)を増やしています。

シーンの切り替わりで、表示・非表示を切り替えています。
(ゲームオーバー(背景がearthになったとき)にかくす)

地球のスクリプトをみてみよう

隕石が当たると、地球がこわれていくのですが
コスチュームをつかってアニメーションさせています。
地球のスクリプトはこんなかんじ。
WS0005
 ずっとライフの変数を見はっていて、ライフがかわったら
地球が壊れるアニメーションをさせています。
そのままだと、アニメーションが何度もくりかえしてしまうので
一度アニメーションしたあとは「このスクリプトを止める」のブロックを使って
アニメーションをストップしています。

ライフが1以下になったときは(ライフがない状態)
アニメーションをしたあと、ずっと「コスチュームをearth5にする」となっています。
このコスチュームには「ゲームオーバー」のメッセージが描かれています。
WS0007
このゲームオーバーのメッセージも、自由に変更してくださいね。

このあいだ、透過png画像をつくるのに、FireAlpacaを紹介しましたが
インストール不要でつかえる、webサービスを発見したので
こっちのほうがお手軽だとおもいます。
いちどお試しください。http://apps.pixlr.com/editor/

こちらのサービスの使い方も、後日UPしますので、ご確認ください。

地球に迫ってくる隕石を作ろう

サンプルでは隕石が2つありますが、
スピードを変えているだけで とくにちがいはありませんので、
とりあえず1つ作ってみましょう。
あとでアレンジしたい方は増やしてみてください。

WS0011
 地球のライフが0になるまで、クローンを作り続けます。
むずかしさ(difficulty)によって、クローンを作る秒数が変化します。
(このゲームでは3.4秒に設定されていますが
むずかしさを変えたい時は、この値を変えてみましょう)

クローンを作ったあとのスクリプトがこちら
WS0012

隕石のでてくる場所や大きさをランダムにして
宇宙船か地球に当たるまで、「スピード(speed)歩動かす」
このスピードの値を大きくすると、隕石が早く落ちてくるので
難易度をかえたい時に、変更してみてくださいね。

あとは、宇宙船に当たったら、隕石が壊れるアニメ
地球に当たったら、地球のライフをへらす処理をして
クローンを削除します。

まとめ

これで、ゲーム部分は完成です。
実際にうごかしてみて、隕石のでてくるタイミングやふってくる速さを調整しましょう。
宇宙船にこだわらず、自分のオリジナルのキャラクターをつかうのも良いですね。

あなただけの防衛ゲームを作ってみて下さいね。 

この記事がよかった!という方は「B!」ボタンや
こちらのボタンを押していただけると元気がでます!