初心者のためのゲームプログラミング入門

プログラミングとゲームの杜

初心者のためのプログラミング入門 & ゲームプログラムの作り方入門

Small Basic 入門

17.すべて拾い集めようゲームを作ろう その4

 

すべて拾い集めようゲームを作ろう その3 ] の続きです。

 

タイトル画面を作ろう

ゲーム自体はほぼ完成したので、タイトル画面を作ります。
タイトル表示用のサブルーチン title() を追加します。

 

タイトル画面を作る

 

 

新しく使う命令を1つずつ見ていきましょう。

グラフィックス機能でテキストを描く

BrushColor は塗りつぶし色の指定です。
FontSize はフォントの大きさを設定します。
DrawText はグラフィックスの機能を使ってテキストを描きます。
パラメータは (x座標, y座標, 文字列) になります。

 

22 Program.Delay(1000)
ミリ秒単位でプログラムを遅らせます。(1000=1秒)
これは算数ドリルのときに使いましたね。

 

マウスのクリックを調べる

While は条件が成立している間は While と EndWhile の間の処理をくり返します。
28行目では <>(=ではない)が使われているので
マウスボタンが押されていない間はくり返し処理が行われます。

29行目の Delay(100) により0.1秒待っています。
このような「待ち」を入れずに空ループを行うと、パソコンに高い負荷が掛かる場合も
あるので注意しましょう。

31行目の Clear() は描画したものクリアします。

 

 

While の使い方

処理をループさせたいとき、For か While を使う場合が多いと思いますが
それぞれ良さがあります。ここでは While の使い方を少し説明します。

 

while の使い方

While は条件が成立している間、ループをくり返します
変数 i が8以下のとき処理されているのが分かると思います。

 

 

while の使い方あれこれ

1行目の <> の記号はイコール(=)ではないときに使います。
つまり、変数 in の中が文字 e ではないとき処理をくり返します。

次のように書くこともできます。

指定した文字が入力されるまでくりかえす

ほぼ同じ動作をします。
しかし、1つだけ違う結果となるので実際に動作を見比べてみましょう。

 

処理をずっとくり返し行いたい場合には While "true" と書きます。

 

 

マウスボタンの状態を調べる方法

Windows OS 系で使われるマウスにはボタンが2つあります。
その2つのボタン(右と左)が押されているかチェックする方法を説明します。

 

次のサンプルは、マウスの左のボタンを押すと左側の四角を表示、
右のボタンを押すと右側の四角を表示します。

マウスボタンの状態を調べる方法

 

左のボタンを Mouse.IsLeftButtonDown
右のボタンを Mouse.IsRightButtonDown
で調べることができます。
押されていると真(true)の値となるので、8行目や15行目のように
調べることが可能です。

 

 

ゲーム終了画面を作ろう

ゲーム終了したあとの画面を作ります。
サブルーチンの名前を gameover() としました。
gameover() の呼び出しは init() の次に入れてすぐにチェックできるようにします。

 

ゲーム終了の画面を作る

 

上の画像ではサブルーチン OnMouseMove() のあとに gameover() を作りましたが
どこに作ってもかまいません。
処理の内容はタイトル画面と同じなので説明を省きます。
メッセージの内容と表示座標が違うだけです。

 

 

ゲームの流れを作ろう

タイトルとゲーム終了の画面ができたので、リトライも含めて流れを作ります。

 

ゲームの流れを作る

 

サブルーチンの呼び出し部分を変更し、ゲームが終了するまで start() を止める処理を
作ります。

 

ゲームの流れを考えたプログラム

 

2行目から6行目、タイトルからゲーム終了までをループさせます。

51行目、変数 state が play ならループさせて、サブルーチン start() が
終わらないようにします。
すべての四角を拾うと変数 state に wait を代入するように作ってあるので
このループから抜けることができます。

実行してみてください。
タイトル → ゲームプレイ → ゲーム終了 → タイトル … とループします。