ゲーム - コマンドプロンプト上でキャラクターを動かす
のサイト内のコンソール・ゲーム - CConsoleクラスへアクセスし、Console.hをコピーし、同名で下記のプログラムと同じディレクトリ(フォルダ)内に保存しておくこと。
#include <stdio.h> #include <conio.h> #include "Console.h" #define MAX_GROUND 20 // 地面の最大数 CConsole g_cnsl; // コンソール・クラス int g_nKey; // キーコード int g_nXPos = 18; // 位置 int g_nYPos = 19; //Y座標の位置 bool g_bGround[MAX_GROUND]; // true : 地面あり void Init(void); void EraseBase(void); void MoveBase(void); void DrawBase(void); void main(void) { // カーソルを消す g_cnsl.SetCursorInfo(25, FALSE); system("cls"); Init(); // 初期化する while(1) { MoveBase(); // 受け止める台を移動させる ::Sleep(60); } } void Init(void) { // 画面クリア g_cnsl.Clear(); g_cnsl.SetCursorPosition(0, 0); g_cnsl.SetColor(L_WHITE, L_BLACK); DrawBase(); for(int i = 0; i < MAX_GROUND; i++){ g_bGround[i] = true; } // 地面作成 g_cnsl.SetCursorPosition(0, MAX_GROUND); g_cnsl.SetColor(L_WHITE, L_YELLOW); printf(" "); DrawBase(); // 受け止める台を描画する } void MoveBase(void) { if(kbhit()) g_nKey = getch(); // キーコード取得 else g_nKey = 0; if(g_nKey == 'z' || g_nKey == 'Z') // 左 { if(g_nXPos > 0) { EraseBase(); // 受け止める台を消去する g_nXPos -= 1; //進むスピード DrawBase(); // 受け止める台を描画する } } if(g_nKey == 'x' || g_nKey == 'X') // 右 { if(g_nXPos < 70) { EraseBase(); // 受け止める台を消去する g_nXPos += 1; //進むスピード DrawBase(); // 受け止める台を描画する } } } void EraseBase(void) { g_cnsl.SetCursorPosition(g_nXPos, g_nYPos); g_cnsl.SetColor(L_WHITE, L_BLACK); printf(" "); } void DrawBase(void) { g_cnsl.SetCursorPosition(g_nXPos, g_nYPos); g_cnsl.SetColor(L_WHITE, L_BLACK); printf("(・ω・)"); }
【目標】
・2次元にすること(マップを作る)
・敵、コインを作る
・ジャンプ機能を作る