第3講 ブロック崩しその2(画像を表示するまで)
第2話 第2講のゲーム画面を起動したコード(プログラムの文章)の1行1行の意味その2
コード再掲
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
ChangeWindowMode(TRUE); //ウィンドウモードの切り替え
SetGraphMode(800, 600, 32); //ウインドウサイズの変更
if(DxLib_Init()==-1)return(-1); // DXライブラリ初期化処理
WaitKey(); // キー入力待ち
DxLib_End(); // DXライブラリ終了処理
return 0;
}
また、上のように戻してF5を押しましょう。
ゲーム画面が
SetGraphMode(800, 600, 32); //ウインドウサイズの変更
がないときより一回り大きくなりました。
800, 600は横のサイズと縦のサイズを示しています。
最後の32はカラービット数といい、
これを指定すると1667万色のフルカラーになります。
32を16にすると、65536色になります。
DXライブラリでは、32か16しか指定できません。
1667万色のフルカラーなら32の方がいいじゃないかとお思いになるでしょうが、
データ量が大きくなりコンピュータの負担(ふたん)は大きくなります。
さしものコンピュータでも3Dゲームになると苦戦することになりますので、
動きが遅くなってしまう場合には16を指定します。
5行目の
if(DxLib_Init()==-1)return(-1); // DXライブラリ初期化処理
は
DxLib_Init(); // DXライブラリ初期化処理
と記述しても問題ありません。
初期化というのは、コンピュータやプログラムの世界ではよく使われる言葉です。
最初の状態に戻すというような意味ですが、
DXライブラリを使うときには、最初にDxLib_Init();を入れなければならないと、
思えばよいでしょう。
この場合は、DXライブラリを使えるような状態にする(環境を設定する)という意味です。
尚、DxLib_Init()==-1の==は算数や数学の=に相当するものです。
DxLib_Init(); はDXライブラリの初期化を行ったときに、
何かの異常が発生した場合、-1の値を報告してくることになっています。
return(-1);のところはreturn(0);でもよいのです。
異常があったときには、int WINAPI WinMain自体を終了するという意味です。
intがついている場合整数の値を返さなければならない決まりになっています。
ですが、その値を使うことがC言語プログラムではありませんので、
何の値でもよいのです。
6行目は
WaitKey(); // キー入力待ち
はキーボードからの入力を待っているという意味です。
何がキーが入力するまでプログラムを進めずに待機させる役割があります。
試しに、6行目を削って
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
ChangeWindowMode(TRUE); //ウィンドウモードの切り替え
SetGraphMode(800, 600, 32); //ウインドウサイズの変更
if(DxLib_Init()==-1)return(-1); // DXライブラリ初期化処理
DxLib_End(); // DXライブラリ終了処理
return 0;
}
でデバッグの開始をすると、一瞬ゲーム画面が立ち上がりますがすぐに消えてしまいますね。
理由は簡単です。
プログラムは上から下に流れます。
つまり、
ChangeWindowMode(TRUE); →SetGraphMode(800, 600, 32);→
SetGraphMode(800, 600, 32);→DxLib_End(); →DxLib_End();→return 0;→}
と流れていきます。
WaitKey(); // キー入力待ち
でプログラムを止めておかないとプログラムはあっという間に終わってしまうわけです。
さて、7行目
DxLib_End(); // DXライブラリ終了処理
は注釈文(//のついている文または/*と*/で挟まれた文)に書いてあるとおりに、
DXライブラリを使ったときに最後にやらなければならない処理です。
8行目
return 0;
についてはすでに説明してあります。
プログラムを終了するときのおまじないと思えばよいということでした。
本当の意味は、関数について説明する話で説明します。
何でもそうですが、物事を一気に理解しようとする姿勢は禁物です。
わからなくても我慢して授業を聞き続ける必要があります。
我慢して聞いていると、
そのときには全く理解できなかったのに、
授業が進むとストンと落ちるように理解できるものです。
そして、1度理解してしまうとなぜ理解できなかったのかがわからなくなるものです。
どうしてこんなに簡単なことを理解できなかったのかと。
意味の説明は以上にして、
第3話からいよいよブロック崩しゲームの本丸に進むことにしましょう。
第1話へ 第3話へ
初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ