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

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

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

Small Basic 入門

31.ふらふらUFOを作ろう その5

 

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

 

スコアを表示しよう

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

 

スコアを表示する

 

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

 

スコアのテキストを登録

 

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

 

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

 

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

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

 

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

 

 

少しずつ難しくしよう

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

 

では状況を変える手段として、自機の 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行目、自機が下がり過ぎないように制限しています。

 

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

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

 

 

完成しました

完成です。お疲れさまでした。
プログラムを発行しましたが、ネット上では遊べません。
自機の絵をローカル環境から取得しているため、見えなくなるのです。

ふらふらUFOゲーム

 

プログラム全体の確認用として使いましょう。

 

 

改造しよう

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

 

改造の例です。

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

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

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