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

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

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

Visual C# 2019 入門

30.突破5 リトライとスコア

 

今回は [ 突破4 当たり判定 ] の続きです。

くり返し遊べるような仕組みと、スコアを入れていきます。

突破ゲームも今回で最後となります。
あと少しがんばりましょう。

 

 

リトライできるようにしよう

くり返し遊べるようにリトライできる機能を入れていきます。
まずはボタンを配置してください。
Text プロパティには「リトライ」と入れましょう。

それからプログラムで使えるように、配置したボタンをダブルクリックして button1_Click を用意しておきましょう。

 

リトライのためのボタンを用意する

 

 

プログラムは3ヶ所変更します。

リトライのプログラム

 

 

リトライボタンを押したら initGame によってゲームの初期化が行われます。
initGame の中で button1.Visible = false をしているので、ボタンを押した直後に非表示になります。
当たり判定のところで button1.Visible = true にしてボタンを表示させます。

実行してみましょう。
開始したときボタンは見えず、ゲームオーバーになったら表示されることを確認してください。

 

ボタンの表示、非表示を切り替える

 

 

スコアを表示しよう

スコアの文字 SCORE: の表示から作ります。
これはラベルを使って表示します。
ラベルを適当な位置に配置したら、Size プロパティを 12 に変更します。
次に Text プロパティを SCORE: に変更しましょう。

 

ラベルを使ってスコアを表示

 

 

続いてスコアの得点を作ります。
2つ目のラベルを配置しましょう。
Size プロパティは 12 に変更し、Text プロパティは 999 に変更します。
Text プロパティはゲーム中にプログラムで書き換えてしまうので、ここで設定する数値に意味はありません。
しかし、ダミーの数値を入れておくことで、デザイン画面で配置する場所を調整しやすくなります。

 

スコアの得点を表示するラベルを作る

 

 

2つ目に配置したラベルはプログラムで使います。
使いやすくする為に name プロパティを scoreLabel に変更しておきます。

 

ラベルのコントロール名を変更する

 

 

壁に当たらず通り抜けたらスコアになる仕組みを入れます。
movePlayer でプレイヤーが画面上部まで来たかを判断しているところでスコアの加算をします。
initGame の中ではスコアのクリアをしましょう。

スコアの加算プログラム

 

 

実行してスコアが加算されるのを確認しましょう。

 

プログラムが正常に動いているかチェックする

 

 

ゲーム性を高めよう

ここまでの制作でゲームとしての形はできました。
次はゲーム性を高める要素を少し入れていきます。

いまは失敗しないかぎり、何度でもすき間を通すようにクリックできますよね。
これに「一度成功すれば、すき間が狭くなる」という仕組みを入れれば、だんだんと難易度があがって緊張感もでてきます。

プログラムを次のように変更しましょう。

 

ゲーム性を高める仕組みを入れる

 

movePlayer のスコア加算と同じところに、すき間を少しずつ狭くする仕組みをいれます。
initGame には、すき間の幅の初期値を入れます。

 

実行してみましょう。
すき間を通すたび、すき間が狭くなっていくのを確認してください。
また、ゲームオーバー後リトライしたときに、すき間の幅が戻っているかを確認しましょう。

 

すき間が狭くなるのを確認する

 

 

これでゲームは完成しました。
全コードは次のようになります。

突破ゲームのプログラム1 突破ゲームのプログラム2 突破ゲームのプログラム3

 

 

改造しよう

お疲れさまでした。
動きのあるゲームの仕組みが、それなりに理解できたと思います。
今回のゲームは、商品として売られているゲームに比べると見栄えはしょぼいです。しかし、同じような仕組みで動いている部分もあります。
いま持っているスキルだけでも、アイデア次第で面白いものが作れることでしょう。

 

これから先、何かプログラムをする予定があればいいのですが、予定がない人については心配しています。
それは、サンプルプログラムを入力して動かしているだけでは
プログラミング能力は身に付かないからです。
自分自身で考えて、プログラムを書くことが一番効果的です。

ということで、予定がなければ改造をしてみたらどうでしょうか。
これだけでも、かなりのスキルアップが望めます。

 

プログラムの改造案

 

他にもハイスコアを付けてみたり、いろいろと改造しましょう。