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

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

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

Small Basic 入門

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

 

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

 

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

グラフィックスを使ってのゲーム作成は初めてなので、簡単なルールにしました。
画面上に小さい四角をいくつか表示します。その四角をマウスカーソルの操作で
拾っていくゲームです。

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

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

 

ゲームの流れです。

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

 

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

 

 

Shapes 機能を使おう

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

 

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

shapes の使い方

Delay() は一定の速度で動くように入れてあります。
1000/60 とすれば大体60フレームで動かすことになります。
(フレームについての簡単な説明はこちら

 

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

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

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

 

 

15個の四角を描こう

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

 

shapes を使って四角を描く

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

 

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

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

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

 

 

余白を考えてプログラムを修正します。

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

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

 

ここでプログラムの保存を行ってください
今後、サンプルプログラムをいくつか紹介します。
サンプルを動かしているときに「ゲームプログラムを消してしまった」とならないように
しましょう。

 

 

サブルーチンを使おう

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

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

サブルーチンはプログラムを読み易くする効果もあり便利なので使っていきましょう。

 

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

サブルーチンとは

 

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

 

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

 

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

サンプルはサブルーチンを使うことで長くなってしまいましたが、
もし、円を描く部分を修正したくなっても、1箇所修正すれば良いので便利です。
元のプログラムでは3箇所の修正になります。

 

 

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

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

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