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

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

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

Small Basic 入門

13.すべて拾い集めようゲームを作ろう

 

これからグラフィックス機能を使ったゲームを作りたいと思います。
Small Basic にはゲーム制作に適した機能もいくつかあるので
割と簡単に作れたりします。

 

 

ゲームの内容を把握しよう

グラフィックスを初めて使うので、簡単なルールにしました。
画面上に表示した四角をマウスカーソルで拾っていくだけのゲームです。

ゲーム中の画面は次のようになります。

すべて拾い集めようゲーム

 

ゲームの流れです。

1.タイトル表示
2.いくつかの四角を表示
3.マウスカーソルを操作し、四角と重なったら四角を消す
4.すべての四角を消したらゲーム終了
5.開始から終了までのタイムを表示
6.リトライ

 

ゲーム部分だけであれば、かなり短いプログラムになります。
しかし、ゲーム全体の作り方を覚えて欲しいため、タイトルからリトライまで作ります。

 

 

Shapes 機能を使おう

Small Basic の最大の武器は Shapes 機能だと思っています。
ゲーム用の開発環境にスプライト機能というのがよくあります。
1枚の絵を自由に動かしたり、回転や拡縮などもできる機能です。
Shapes はスプライト機能ととてもよく似ています。

 

次のサンプルを実行してみましょう。
四角が表示されて、移動、回転、拡縮(拡大)を行います。

shapesの使い方

Delay( ) は処理を遅くするために入れています。
入れないと処理が一瞬で終わります。
1000/60 としているのは、おおよそ60フレームで動かしたいからです。
(他の処理もあるので、実際には60フレームになりません)

 

今回は1行目の AddRectangle( ) と4行目の Move( ) を使います。

shapesで四角を描き移動する方法

一度変数に入れてから利用するのがポイントです。
なお、変数名は任意です。

 

 

15個の四角を描こう

ゲーム作りを始めます。
Shapes を使って15個の四角をランダムに表示します。
画面サイズは、幅(Width)500、高さ(Height)400 にしました。

shapesを使って四角を描く

5行目、GetRandomColor( ) を使ってランダムな色を発生させています。
8行目、幅と高さ 20 の四角を作成しています。
9行目、作成した四角を乱数で決めた座標に配置しています。

 

実行結果をよく見ると、画面からはみ出した四角があります。
これは座標を決める乱数に問題があります。
画面の幅 500 に対し、x座標の乱数も 500 までの数を発生させているからです。

この場合、四角の幅も考慮して 480 までの乱数にすべきです。
さらに見た目のことも考えると上下左右 10 ずつの余白が欲しいですね。
乱数で作りたい幅を計算式にすると次のようになります。

500 -20(四角の幅)-20(左右の余白)= 460

 

余白を考えてプログラムを修正します。
高さも同じように変更します。

画面の余白を考えて乱数を作る

6行目、乱数に +10 しているのは左側の余白を作るためです。
7行目、+10 は上部に余白を作ります。
これで上下左右それぞれに余白ができました。

 

ここでプログラムの保存を行いましょう
制作中の保存は定期的に行ってください。

プログラムを保存する

今後、サンプルプログラムをいくつか紹介します。
そのときは新規でエディタを開いて試しましょう。

 

 

サブルーチンを使おう

プログラムでは、同じ処理を何度も繰り返すときがあります。
そんな場合はサブルーチンを使うと便利です。

処理をサブルーチン化することで、何度でも使うことができます。
なお、サブルーチンを使うことを「サブルーチンを呼び出す」といいます。

サブルーチンはプログラムを読み易くする効果もあります

 

次のサンプルを見てください。

サブルーチンとは

3つの円を描いている処理は、座標の指定が違うだけでその他は同じです。
これをサブルーチンを使ったプログラムにしてみます。

サブルーチンを使ったプログラム

サブルーチンは SubEndSub を使います。
Sub のあとにサブルーチンの名前を書きます。
呼び出すときは 名前( )になるので注意してください。

このサンプルでは、サブルーチンを使うことで行数が多くなりましたが、
(同じ処理が)複数の箇所にあるよりはメリットがあります。
修正したいとき1箇所変更すればいいのですから。

 

もう1つサンプルを見てください。

サブルーチンは呼び出して使う

これを実行するとプログラムはすぐに終了します。
サブルーチンを呼び出していないためです。
サブルーチンは呼び出して使うものと覚えましょう。