第7講 テトリス開発(4つのブロックを描くまで)
第4話 テトリス開発の基本的考え方
このページは姉妹編小学生からのエンジニアまでのC言語プログラミング入門
ページを少し変えて再利用しています。
ですから、ゲーム画面は実際には横幅が後200ほどあります。
今回は、マップ(地図)という考え方を採用します。
まず、ゲーム画面を
001
縦27横12に区切ります。
1つのますは縦横ともに20です。
20×27から縦サイズが540です。
また、20×12から実際にテトリスで使う横サイズは240です。
残りの横サイズ200はスコアを掲示したり、
次のブロックを予告するのに使います。
最初は、区画に
002
003
004
のように数字を書き込みます。
0が空白、1が壁を意味します。
長方形ブロックや正方形ブロックなどにもそれぞれ2、3等の番号を割り振ります。
0050のところは各ブロックを描いてよいとするわけです。
上なら長方形ブロックが天井から降りてくるところ意味します。
0より大きい数字を割り振ることによって、
ブロックが壁と重複したり、
ブロック同士が重なったり、することを防ぐわけです。
数字を書き込むという言い方をしていますが、
画面に実際に書き込むわけではありません。
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)の前で、
char chizu[12][27];
と宣言して、2次元グローバル配列を用意して下さい。
この配列に002のように数字を書き込むのです。
本来2次元配列は*[縦][横]というように使うのですが、
DXライブラリは(横、縦)となっていますので、
chizu[横][縦]として使っています。
ExcelのVBAはCells(縦、横)となっているのに対してシートの方は横縦でセルを表すために、
逆になっていて頭が混乱します。
混乱しないように、DXライブラリの(横、縦)に合わせることにしましょう。
001(ただし、長方形ブロックはありません。)
壁は006を利用してください。縦横20に調整してあります。
ファイル名はご自由ですが、私はkb00.pngとしています。
006のところで右クリックして001名前を付けて保存すれば画像をゲットできます。
もちろん、縦横のサイズ20のものであれば他の画像を採用していただいても結構ですし、
DrawBoxで好きな色に描いていただいてもいいですよ。
初心者の方でも、ここまでついていらっしゃった優秀な方ですから、
私と同じにする必要もないし、
むしろ自分で工夫して変える方が学習になります。

マップを利用すると最初にいいましたのは、
区画の数字によって描くものをかき分けることを意味しています。
後にマップを利用して、
後にロールプレイング風アクションパズルゲームに
挑戦する予定です。

壁を建設するには、新しく社員void chizusakusei();を採用して、
この社員にやらせて下さい。
void gamemain()の中身は、当然
void gamemain(){ //ゲーム画面
  chizusakusei(); //地図作成(壁建設)
}
となります。



第3話へ  第5話へ

002

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

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