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

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

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

Visual Basic 2017 入門

36.メテオ6 タイトルとスコアの表示

 

今回は [ メテオ5 爆発演出とゲームオーバー ] の続きです。

この課題もこれで終わりです。
あと少しがんばりましょう。

 

 

タイトルを表示してみよう

今回はタイトルを表示したいと思います。
前回、ゲームオーバーを表示しましたが、処理の内容はとても似ています。

まず、次のように変更してください。

 

vb タイトルを表示してみる

 

変数 titleFlg を宣言します。Boolean タイプであることに注意です。
この変数が true(真)のときタイトル関係の処理が行われるようにします。

クリックすることで呼び出される pBase_Click の中で、titleFlg が True であるなら
titleFlg の切り替えるしくみを作ります。
ゲームオーバーのときと同じです。
ただ、ここでは False (偽) にするだけでOKです。
msgcnt をここでクリアしているのは、ゲームオーバーのためです。

If msgcnt > 20 Then

としている理由は、タイトルの表示時間を少しでも作るためです。
タイトル ゲーム ゲームオーバー タイトル ゲーム
という感じでループさせるつもりなので、
ゲームオーバーでクリックを連打すると、タイトルでもそのクリックを
受け付けてしまい、すぐにゲームが始まってしまいます。
そうならないようにクリックの無効時間を作るのです。

 

 

それでは、プログラムの続きです。

 

vb タイトル表示のしくみ

 

タイトル表示の画面を titleDisp の中で作ります。
ゲームオーバーの時と同じで、タイトル画面で必要な描画をすべて行います。

初期処理 gameInit の中で、titleFlg を True にして
起動後にタイトルが表示されるようにします。

Timer1_Tick では、変数 titleFlg を使ってタイトル表示の切り替えをします。
こちらもゲームオーバーと同じですね。
(正確には爆発演出 playerExplosion と同じ)

 

 

実行してみましょう。
「CLICK ON THE SCREEN」は点滅します。
画面をクリックしてゲームが始まるか、確認しましょう。

 

vb タイトル表示画面

 

 

スコアを表示しよう

スコアを表示するために変数 score を作ります。
そして、スコアを描画するためのフォントの設定を作ります。
名前は myFont とします。(好きな名前でかまいません)
これは、どのようなフォントタイプを使うのか
どのサイズで表示するのかを設定します。
初期処理 gameInit では、変数 score の初期化をしましょう。

 

vb フォントの設定

 

 

スコア(得点)は時間経過で増えていくようにします。
このゲームはシューティングではないので、隕石をよけているだけで
どんどん得点が入るようにします。

 

vb グラフィックで文字を表示する

 

3行追加するだけです。
Timer1_Tick に score += 1 するだけで、隕石をよけている間は加算されます。

g.DrawString は初めて使います。
これはグラフィックとして文字を表示するためのものです。
基本、表示する内容は文字列で指定します。

"SCORE: " & score.ToString()

変数 score を文字列に変換して、SCORE: という文字列と結合しています。
Brushes.White は文字の色です。
その次の 10, 10 は表示座標です。

 

 

実行してみましょう。
ゲーム中、スコアは加算されますが、ゲームオーバーになると加算されません。
確認してみて下さい。

 

vb スコアをグラフィックで表示する

 

 

完成しました

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

今までのページを見ながら、実際にプログラムを入力し
そのたびに実行しているなら必要ないのかもしれませんが
全プログラムを載せておきます。

[ メテオゲーム 全プログラム ]

 

この課題では、画像を使ってゲームを作りました。
今回の手法を知っていれば、かなり見栄えの良いゲームが作れると思います。
Visual Basic という1つの言語(開発環境も含め)だけで、
これだけのことができるなら、かなり良い言語だと思います。
ゲームに限らず Windows アプリも作れるのですから。

ただ、他にもゲームが作りやすい言語や環境が沢山あります。
少しでも気になったら調べてみて下さい。
もっとわくわくする気持ちが広がると思いますよ。

 

 

改造してみよう

これからプログラムを作る予定のない人向けの話です。

プログラムは作らないと覚えられないし、忘れてしまいます。
どんどんプログラミングしましょう。
何をすればいいか分からないのなら次の改造をしてみましょう。

・ハイスコア表示
・隕石の大きさをランダムにする
・隕石の大きさによって移動速度を変える
・得点アイテムを出現させる
・ビームを撃てるようにして、隕石を破壊できるようにする

 

また改造ではなく、新しくプロジェクトを作成して
横スクロールのゲームに変更するのも勉強になると思います。
右側から隕石を出現させて、左へ流れるようにします。
自機は自由に上下左右できるようにすれば、ゲームの雰囲気も変わります。
色々なことに挑戦してみて下さい。