ゲーム - コマンドプロンプト上でキャラクターを動かす

0からのゲームプログラミング

のサイト内のコンソール・ゲーム - 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次元にすること(マップを作る)
・敵、コインを作る
・ジャンプ機能を作る