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

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

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

Visual Basic 2019 入門

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

 

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

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

 

 

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

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

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

 

タイトルを表示する

 

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

クリックで呼び出される pBase_Click の中で、titleFlg が True なら切り替える(表示を止める)しくみを作ります。

ゲームオーバーのときと同じです。
ただ、ここでは False (偽) にするだけでOKです。
msgcnt をここでクリアしているのは、ゲームオーバーのためです。

If msgcnt > 20 Then

としている理由は、タイトルの表示時間を少しでも作るためです。

タイトル ゲーム ゲームオーバー タイトル ゲーム
という流れで、ゲームオーバー中にクリックを連打すると、タイトルでもそのクリックを受け付けてしまい、すぐにゲームが始まってしまいます。
そうならないようにクリックの無効時間を作るのです。

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

 

 

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

タイトルを表示する

 

タイトル表示の画面を dispTitle の中で作ります。
ゲームオーバーの時と同じで、タイトル画面で必要な描画をすべて行います。
Timer1_Tick の上にでも作ってください。
タイトル画像の表示は 89 行目で行っています。

 

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

 

 

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

タイトル表示を確認する

 

 

スコアを表示しよう

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

 

フォントの設定

 

 

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

スコアを表示する

 

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

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

"SCORE: " & score.ToString()

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

 

 

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

スコアが加算される様子を確認する

 

 

完成しました

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

ここまで説明を見ながら実行しているなら必要ないのかもしれませんが、全プログラムを載せておきます。

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

 

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

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

 

 

改造してみよう

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

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

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

 

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