Game库(v1.0)

这是一个Game游戏库,定义了一些适合用来做游戏的函数,原框架来源于C++RPG游戏2.1.01测试版《末日之战1:新生》(by YXCJ_岩心_尘寂的博客-CSDN博客中的cj.h库,并且我将部分函数修改了一下,又加了几个函数。下面是源代码,有需要的可以拷走(最近也在编写C++RPG游戏):

// Game.h v1.0(适用于C++97编译环境)(Dev-C++编译环境)

// Dev-C++ 如何使用C++11?点击上面的工具->编译选项->代码生成/优化->代码生成:->语言标准(-std)->ISO C++11 

#pragma once

#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
#include <windows.h>
#include <conio.h>

using namespace std;

void rect(int left, int top, int right, int bottom, string text);//在屏幕上画出一个矩形,左上角坐标是(left, top),右下角坐标是(right, bottom),矩形填充内容为 text 。
void cursor(SHORT x, SHORT y);//将光标移动到屏幕的(x, y)处。
void color(int color_num);//设置屏幕上文字的颜色。
int random(int min, int max);//生成一个 min 到 max 之间的随机数。
void typeout(string text);//在屏幕上打印字符串 text ,每个字符输出之间间隔为 speed 毫秒。
void clear();//清空屏幕上所有内容。
void show();//显示光标。
void hide();//隐藏光标。
int input();//获取一个键盘输入。
void pause();//暂停程序运行,等待任意键按下,然后清空屏幕。
int msg(LPCSTR Text, LPCSTR Caption, UINT Command);//在屏幕上弹出一个消息框,显示 Text 和 Caption,并且响应用户的操作。
void screen(int Command);//最大化、最小化或还原控制台窗口。
void sleep(int sleep_time);//让程序休眠指定时间,sleep_time是以秒为单位的时间。

void rect(int left, int top, int right, int bottom, string text)
{
	for (int i = left; i <= right; i++)
	{
		for (int j = top; j <= bottom; j++)
		{
			cursor(i, j);
			cout << text;
		}
	}
}

void cursor(SHORT x, SHORT y)
{
	COORD pos = { x, y };
	HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(hOutput, pos);
}

void color(int color_num) {
	switch (color_num) {
	case 0: //白色
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
		break;
	case 1: //红色
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
		break;
	case 2: //黄色
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN);
		break;
	case 3: //绿色
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
		break;
	case 4: //青色
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_BLUE);
		break;
	case 5: //蓝色
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE);
		break;
	case 6: //紫色
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_BLUE);
		break;
	}
}

int random(int min, int max)
{
	srand((unsigned int)time(NULL));
	int value = (rand() % (max - min + 1)) + min;
	return value;
}

void typeout(string text)
{
	int speed = 50;
	for (int i = 0; i < text.length(); i++)
	{
		cout << text[i];
		Sleep(speed);
	}
}

void clear()
{
	show();
	system("cls");
}

void show()
{
	HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
	CONSOLE_CURSOR_INFO CursorInfo;
	GetConsoleCursorInfo(hOutput, &CursorInfo);
	CursorInfo.bVisible = true;
	SetConsoleCursorInfo(hOutput, &CursorInfo);
}

void hide()
{
	HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
	CONSOLE_CURSOR_INFO CursorInfo;
	GetConsoleCursorInfo(hOutput, &CursorInfo);
	CursorInfo.bVisible = false;
	SetConsoleCursorInfo(hOutput, &CursorInfo);
}

int input()
{
	hide();
	return _getch();
}

void pause()
{
	CONSOLE_SCREEN_BUFFER_INFO csbi;
	GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
	hide();
	cursor(csbi.dwSize.X / 2 - 7, csbi.dwSize.Y / 2);
	cout << "按下任意键继续";
	input();
	clear();
	show();
}

int msg(LPCSTR Text, LPCSTR Caption, UINT Command)
{
	return MessageBoxA(NULL, Text, Caption, Command);
}

void screen(int Command)
{
	if (Command == 1)ShowWindow(GetForegroundWindow(), SW_MAXIMIZE);
	else if (Command == 2)ShowWindow(GetForegroundWindow(), SW_MINIMIZE);
	else ShowWindow(GetForegroundWindow(), SW_RESTORE);
}

void sleep(int sleep_time)
{
	Sleep(sleep_time * 1000);
}

Tips:这个库可以在Dev-C++上运行!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值