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

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

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

Small Basic 入門

30.ふらふらUFOゲームを作ろう その5(完)

 

[ ふらふらUFOゲームを作ろう その4 ] の続きです。

この課題もこれで最後です。あと少し頑張りましょう。

 

 

ゲームオーバーを表示しよう

ゲームらしくスコアを表示しましょう。
壁をよけ続けているかぎり得点が入るようにします。

スコアを表示する

 

プログラムを見てみましょう。
スコアの表示には Shapes.AddText を使います。

スコアのテキストを登録

テキストの登録はゲームオーバーと同じです。
32行目で SCORE:0 というテキストを登録していますが、この内容はあとで変更します。

 

Shapesを使ってスコアを表示する

56行目、変数 score を作りました。これにスコア(得点)を入れます。
73行目、ゲームをループしている間 score に加算します。
74行目、スコアを表示していた sctext の内容を変更します。
AddText ではなく SetText を使っていることに注意してください。

これでスコア表示は完了です。
とても簡単ですね。

 

テキストの表示でも Shapes を使うことで図形のようにあつかえます。
つまり、大量得点が入ったとき、スコアを拡縮したりする演出も
簡単に入れられる訳です。

 

 

少しずつ難しくしよう

今回のようなゲームは、何度かプレイすると飽きてきます。
最大の原因は状況が変わらないからです。
これを回避する簡単な方法は、少しずつ難しくしていくことだと思います。
そうすると初めは100点しか取れなかったとしても、少しずつスコアが伸びていくようなプレイになり易いです。

 

では状況を変える手段として、自機の UFO を少しずつ下げてみましょう。

UFOを少しずつ下げる

UFOを徐々に下げるプログラム

61行目、変数 pycnt をy座標の計算用として用意します。
85行目、pycnt を 100 で割って自機のy座標 py に代入しています。
つまり、pycnt は小数点第2位(0.01の位)までを管理できるようにしています。
small basic は小数点が使えるので、こんな面倒なことはしないで
61 pycnt = py
84 pycnt = pycnt + 0.1
85 py = pycnt
としても同じ結果になります。

あえて面倒な方法にした理由は、このような手法も覚えて欲しいからです。
プログラミング言語の中には、小数点を不得意とするものもあります
この手法を知っていれば、整数しか使えない言語でも簡単に解決できます。

86行目、自機が下がり過ぎないように制限しています。

 

実行して自機が下がるのを確認しましょう。

なお、ゲームを楽しくプレイしてもらう方法は難しくするだけではありません。
自分なりの方法を考えてみましょう。

 

 

完成しました

完成です。お疲れさまでした。

毎度おなじみの話ですが、課題のプログラムを動かしているだけでは
なかなか身に付かないと思います。
自分で考えながらプログラミングすることでスキルは伸びて行きます。
ということで、どんどん改造しましょう。

 

改造の例です。

・ハイスコアを画面の右上に表示する
・タイトルを表示する
・キー操作をやめて、マウスだけの操作に変更する
・得点アイテム(コインなど)を谷の中に出現させる
・谷の幅を途中で変更する

などなど、挑戦してみましょう。
谷の幅を途中で変更するのは、当たり判定の範囲も変わります。
ちょっと難しいので注意してください。

そうそう、改造するときは完成したプログラムファイルをコピーして
オリジナルを退避しておく方がいいです。
改造しすぎて動かなくなってもオリジナルがあれば安心です。