第7講 ブロック崩しその5(得点のカウントと表示・ゲームはじめの画面とゲームの切り替え・ゲームクリアとゲームオーバー画面表示)
第4話 ゲーム初期画面の作成
第3話問題解答例
・・・
void main(); //ゲームを進行させる社員
void saisyonogamen(); //さいしょのがめん ゲームの初期画面を描く社員(関数)
void make(); //まけ ゲームオーバ−を描く社員(関数)
void kachi(); //かち ゲームクリアを描く社員(関数)
・・・
int m; //ゲームの状態 0:ゲーム始め 1:ゲーム 2:ゲームオーバー 3:ゲームクリア
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
・・・
m=0;
SetDrawScreen(DX_SCREEN_BACK); //裏画像を描画対象に加える(2017/06/28追加) 画面のちらつき対策
while (ScreenFlip() == 0 && ProcessMessage() == 0 &&
ClearDrawScreen() == 0) {
if(m==0)saisyonogamenn(); //さいしょのがめん ゲームの初期画面を描く社員(関数)
if(m==1)main(); //ゲームを進行させる社員
if(m==2)make(); //まけ ゲームオーバを描く社員(関数)
if(m==3)kachi(); //かち ゲームクリアを描く社員(関数)
}
・・・
}
void make() { //まけ ゲームオーバーを描く社員(関数)
}
void kachi() { //かち ゲームクリアを描く社員(関数)
}
void main() { //ゲームを進行させる社員
maru(); //ボールの位置を計算して、その位置にボールを描く社員
atarihantei(); //あたりはんてい ボールがブロックに当たったかの判定をする社員
sikaku();
//ブロックの位置を計算して、その場所にブロックを描く社員
//将来的には当たったら消えるようにする仕事も担当する
bar(); //バーの位置を計算して、その場所にバーを描く社員
SetFontSize(32); //フォントサイズを32に変更
DrawFormatString(400, 600, siro, "ゲームスコア:%d", tokuten); //
文字を描画する
}
vodi saisyonogamen(){ //さいしょのがめん ゲームの初期画面を描く社員(関数)
DrawBox(0, 0, 800, 800, siro, true);
int gazou;
gazou = LoadGraph("画像/02.png");
DrawGraph(200, 200, gazou, false);
if (CheckHitKey(KEY_INPUT_Z) != 0) m = 1;
}
コピペ用添付ファイル
では、皆さんバーで跳ね返せなければ、
m = 2;
として、ブロックがすべて消えたら、
m = 3;
とすることによって、
ゲームオーバーとゲームクリアの画面が出るようにしてください。
ゲームクリアの条件は、今は1ブロック10点という単純配点ですから、
ゲームスコアが400点になった時点でゲームクリアを判断してもよいですが、
将来、ゲームの進行とともに配点を変えていきますので、
グローバル変数
int kosu = 40; //ブロック個数
を用意して、ブロックに当たるたびにひとつずつ減らすことにして、
0になったらクリアとしましょう。
今回は、
SetFontSize(*); //フォントサイズを*に変更
DrawFormatString(*, *, *, "*"); // 文字を描画する
を利用してゲームオーバーとゲームクリアの画面を作ることにしましょう。
第3話へ 第5話へ
初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための]世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ