第7講 ブロック崩しその5(得点のカウントと表示・ゲームはじめの画面とゲームの切り替え・ゲームクリアとゲームオーバー画面表示)
第7話 初期設定に向けての課題その1
皆さん、今までブロックの横幅などを具体的な数字800等と書いてきましたが、
実は余り好ましいやり方ではありません。
今ゲーム画面のサイズが横幅800ですから、
例えば、ブロックの1行(横列ですよ)の並びを現在の10個から、
20個に変更したとすると、80をすべて40に書き直さなければなりません。
すべて置換を使って一気に直すことはできるとはいえ、
すべて置換を使うと、思わずところも置換してしまい、
実行エラーを起こしてしまう場合があったりします。
例えば、今のゲーム画面の横サイズ800の中に80が含まれていますから、
400に書き換わってしまうわけです。
もちろんこの際にも慌てずに、
Ctrl+Zをすれば元に戻りますから心配はないのですが、
面倒な作業です。
Ctrl+Zはひとつ手前に戻すです。
ペイントなどで、中を塗りつぶそうと思ってインクを落としたら、
図に穴が開いていて全面が黒く塗りつぶされてしまい、
絵を描く作業をあきらめて最初からやり直している生徒をよく見ましたが、
本当は慌てずにCtrl+Zをすれば元に戻り時間の無駄をしなくてすんだのです。
話を元に戻しましょう。
ひとつだけ変更すれば、プログラムで80を使っている場所を変更できたら大変便利です。
他のサイトで勉強した方は、
プログラムの最初の方に、
#define BLOCK_WIDTH 80
等と書いてあるのを見て、
意味がわからず最初からゲームプログラミングをやろうとする
意志をくじかれてしまった人も多いと思いますが、
この文は、BLOCK_WIDTHを80と定義(約束)するという意味です。
そしてプログラムで80と書くところをBLOCK_WIDTHで書いておけば、
冒頭の行の
#define BLOCK_WIDTH 80

#define BLOCK_WIDTH
40
と書き換えれば、一気にプログラムコード全体の80に相当するところが書き換えられるわけです。
#define A 500
はAを500として定義する、
この言い方がわかりにくかったら、
500をAで表すことにするという意味です。
本プログラムでも、
#define A 500
に相当するコードが1カ所だけありました。
const int houkougae = -1; //ほうこうがえ 方向チェンジ
です。constがつくと定数となるのです。
これは
#define houkougae -1
としてもよかったのです。
つまり、houkougaeを-1を表す定数として定義するということです。
#defineが定義する(約束する)という意味なのです。
だいたいのC言語ゲームプログラミング入門のサイトや書籍は、
#define BLOCK_WIDTH 80等を多発していますが、
本プログラムでは使いませんし、
この後の講義でも、余り使わずに進める予定です。
ゲームモードを簡単に変更できるようにするには、
途中で変更が不可能な定数ではなく、
変数にします。
変数にしておいて、
ゲームの初期設定は
void syokika();
という社員に担当させます。
本プログラムで具体的な数字
ブロック横数(10)・ブロック縦数(4)・ボールの横方向の速さ(2)・ボールの縦方向の速さ(6)・
バーの横幅(600)・バーの縦幅(200)・ブロックの横幅(80)・ブロックの縦幅(40)
等をすべて変数に変更して、
1カ所変更するとすべてが変わるようにします。



第6話へ  第8話へ
a

初心者のための excel 2016 マクロ VBA 入門講義 基
礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための]世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ