0からのゲームプログラミング > コンソール API |
Back Next |
更新日 2004.04.07 |
コンソール API |
ウィンドウズ・アプリケーションを創るのは、慣れるまで非常に時間が掛かりますよね。そこで、ここでは、コンソール・アプリケーションで簡単なゲームを創ってみましょう。 コンソールで文字の色を変更したり、文字の表示位置を変更したり出来る コンソール API が幾つかあります。例えば、 SetConsoleCursorInfo SetConsoleCursorPosition SetConsoleTextAttribute GetConsoleScreenBufferInfo FillConsoleOutputAttribute FillConsoleOutputCharacter 等です。これらの API を簡単に使って頂く為に、CConsole クラス として、一つのクラスにまとめてみました。これらの API の個別の使い方は、CConsole クラス のソースやMSDN 等を見て下さい。 それでは、CConsole クラス の使用例を見てみます。まずは、カーソルの位置を変更し、自由な位置に文字を表示してみます。 サンプルコード |
|
実行結果 |
|
SetCursorPosition メンバ関数で、カーソルの位置を設定しています。第1引数には列 [x座標] を、第2引数には行 [y座標] を指定します。 もちろんこの場合には、以下のようにした方が簡単ですが。 |
|
次は、前景色・背景色を変更してみましょう。 サンプルコード |
|
実行結果 |
|
SetColor メンバ関数で、前景色と背景色を設定しています。第1引数には前景色 [文字色] を、第2引数には背景色を指定します。引数に指定出来るのは、0 〜 15 の 16 パターンの色を指定出来ます。数字だと何色か分かり難いので、列挙型として定義しています。 |
|
SetColor メンバ関数では、SetConsoleTextAttribute という API を使っているのですが、その API の前景色属性には、4つの定数 FOREGROUND_BLUE、FOREGROUND_GREEN、FOREGROUND_RED、FOREGROUND_INTENSITY の組み合わせしか指定出来ない為に、16 [ 24 ] パターンに限られてきます。 同じように、背景色も 16 パターンになります。定数は、BACKGROUND_BLUE、BACKGROUND_GREEN、BACKGROUND_RED、BACKGROUND_INTENSITY の4つ。 |
|
CConsole クラス には、カーソルの表示・非表示を切り替える SetCursorInfo メンバ関数と、画面をクリアする Clear メンバ関数も用意しています。 後、ゲームを創る為には、キーボード入力をリアルタイムに取得する必要がありますね。scanf 関数では、処理が止まってしまいますから。以下は、リアルタイムにキーボード入力の文字コードを表示させるサンプルです。 サンプルコード |
|
kbhit 関数は、キーボード入力の有無を調べます。キーが押されている場合のみ、getch 関数で文字コードを取得しています。現在のコンピュータは処理が非常に速いので、Sleep 関数で適当に処理を中断しています。 以上の内容から、コンソールで簡単なゲームを創ってみて下さい。 |
【スポンサード リンク】 |
Back Next |
0からのゲームプログラミング > コンソール API |