第2講 はじめてのゲーム画面起動
第5話 ゲーム画面を起動したコード(プログラムの文章)の1行1行の意味その1
第2話でmain.cppに記述したコード(プログラムの文章)
#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;
}
の意味を説明していませんので、
1行1行説明していきましょう。
まず、1行目の
#include "DxLib.h"
の意味はおわかりですね。
秘密の道具箱であるDXライブラリ(フォルダ「プロジェクトの追加すべきファイル_VC用」に入っている)から、
ここで使う部品(ツール)を借りてくるのが1行目の意味です。
#については説明していませんでしたが、
インクルード(読み込むとかく見込むという意味)するには、
#includeとするのだと決められているのです。
猫のことをなぜ「ネコ」と呼ぶのか、を問うても意味がないですね。
英語ならcat(キャット)ですし、ドイツ語ならkatze(カッツエ)ですし、
中国語ならマオです。
呼び方は自由なのです。
日本では「ネコ」と呼ぶと決めただけです。
#includeもインクルード(読み込む)ときには、
#をつけると決めただけです。
C言語の文法もこれからたくさん学んでいきますが、
どうしてそのように決めたのかは、
気にしても意味がない場合の方が多いでしょう。
プログラム言語ごとに文法も違うのですから。
ですから、決まりは決まりとして覚えるしかないでしょう。
尚、第2講第4話では、インクルードするファイルは<stdio.h>と<>で挟んでありましたが、
Windowsが標準で用意するヘッダファイル(インクルードするファイルをヘッダファイルといいます)を
インクルードするときには<>で囲い、
自分たちが作ったヘッダファイルをインクルードするときには、
""で括るということになっています。
DXライブラリーもWindows標準のヘッダファイルではなく、
個人が作ったヘッダファイルです。
ですから、<>ではなく""で囲います。
2行目のint WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
は、第2講第4話のプログラム
#include<stdio.h>
int main()
{
printf("初めてのプロジェクト体験\n"); //コンソール画面に表示
return 0;
}
のmainに相当します。
ゲームプログラミングの社長がint WINAPI WinMainなのです。
現在は、社長一人の会社ですが、
講義の進展とともにたくさんの社員(関数)をやっとってだんだん大きな会社になっていきます。
もっとも、ブロック崩しゲームでは5人の社員を採用するだけですが。
HINSTANCE, HINSTANCE, LPSTR, intの部分はおまじないだと思ってください。
今はDXライブラリを使ってプログラミングするときにはそう書くものと
決まっているのだと思って気にしないでください。
3行目と4行目
ChangeWindowMode(TRUE); //ウィンドウモードの切り替え
SetGraphMode(800, 600, 32); //ウインドウサイズの変更
の役割を理解するために試しに、
この2行を削って、
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
if(DxLib_Init()==-1)return(-1); // DXライブラリ初期化処理
WaitKey(); // キー入力待ち
DxLib_End(); // DXライブラリ終了処理
return 0;
}
としてデバッグの開始(F5を押す)をしてみてください。
画面全体が真っ黒になりましたね。
Enter等何かのボタンを押すとゲーム画面は消えて元に戻ります。
次に3行目だけ付け加えて
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
ChangeWindowMode(TRUE); //ウィンドウモードの切り替え
if(DxLib_Init()==-1)return(-1); // DXライブラリ初期化処理
WaitKey(); // キー入力待ち
DxLib_End(); // DXライブラリ終了処理
return 0;
}
としてF5を押してください。
今度は、ゲーム画面がかなり小さくなりました。
ChangeWindowMode(TRUE); //ウィンドウモードの切り替え
を
ChangeWindowMode(FALSE); //ウィンドウモードの切り替え
と書き換えてデバッグの開始をしてみましょう。
ゲーム画面がまた全面になりましたね。
TREUとFALSEで画面の大きさを切り替えています。
TREUは真という意味で、
FALSEが偽という意味ですが、
今はTREUだとゲーム画面が小さくなり、
FALSEだとゲーム画面が全面になるのだと覚えてください。
尚、
ChangeWindowMode(TRUE); //ウィンドウモードの切り替え
ChangeWindowMode(FALSE); //ウィンドウモードの切り替え
は
ChangeWindowMode(true); //ウィンドウモードの切り替え
ChangeWindowMode(false); //ウィンドウモードの切り替え
と書いてもよいのです。
つまり大文字小文字は関係ありません。
ほとんどのサイトや書籍は大文字にして講義を進めていますが、
このサイトでは小文字で通します。
理由は、C言語の基本はすべて半角の小文字で書くことになっているからです。
第4話へ 第6話へ
初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ