=-=终于放弃用C实现图形模式...
前辈们说的好啊,不能急躁,现在主要是打好基础。
不过,即使是文本模式的游戏,依旧可以通过一些现有的技巧做的很好。
1.设置颜色(不仅是设计游戏,平时没事也可以玩玩)
版本一:
//Must so
#include<iostream>
#include<conio.h>
#include<windows.h>
#include<cstdio>
using namespace std;
//设置文本颜色
void SetColor(unsigned short ForeColor,unsigned short BackGroundColor)
{
HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hCon,(ForeColor%16)|(BackGroundColor%16*16));
}
int main()
{
int i,j;
while(cin>>i>>j)
{
SetColor(i,j);
cout<<"Hello World!!"<<endl;
SetColor(7,0);//恢复为黑底白字。。
}
return 0;
}
版本二:
//Must so
#include<iostream>
#include<conio.h>
#include<windows.h>
#include<cstdio>
using namespace std;
//设置文本颜色
int main()
{
system("color 0A");
cout<<"Hello World"<<endl;
// system("pause");
if (getchar())
system("cls");
system("color 0C");
cout<<"Hello World"<<endl;
return 0;
}
/*
0=黑色
1=蓝色
2=绿色
3=湖蓝色
4=红色
5=紫色
6=黄色
7=白色
8=灰色
9=淡蓝色
A=淡绿色
B=淡浅绿色
C=淡红色
D=淡紫色
E=淡黄色
F=亮白色
*/
版本三:
设置部分颜色
//Must so
#include<cstdio>
#include<windows.h>
//设置部分颜色
int main()
{
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(handle,FOREGROUND_RED | FOREGROUND_GREEN |FOREGROUND_BLUE );//白色
printf("要么");
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);//红色
printf("孤独\n");
SetConsoleTextAttribute(handle,FOREGROUND_RED | FOREGROUND_GREEN |FOREGROUND_BLUE );
printf("要么");
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);//黄色
printf("庸俗\n");
SetConsoleTextAttribute(handle,FOREGROUND_RED | FOREGROUND_GREEN |FOREGROUND_BLUE );
return 0;
}
/*
FOREGROUND_BLUE 前景色包含 蓝色
FOREGROUND_GREEN 前景色包含 绿色
FOREGROUND_RED 前景色包含 红色
FOREGROUND_INTENSITY 前景色加强
BACKGROUND_BLUE 背景色包含 蓝色
BACKGROUND_GREEN 背景色包含 绿色
BACKGROUND_RED 背景色包含 红色
BACKGROUND_INTENSITY 背景色加强
COMMON_LVB_GRID_HORIZONTAL 顶部水平网格
COMMON_LVB_GRID_LVERTICAL 左竖直网格
COMMON_LVB_GRID_RVERTICAL 右竖直网格
COMMON_LVB_UNDERSCORE 下划线
*/
2.光标的移动
//Must so
#include<iostream>
#include<conio.h>
#include<windows.h>
#include<cstdio>
using namespace std;
//光标的移动
void gotoxy(int x, int y)
{
COORD pos;
pos.X = x;
pos.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
int main()
{
int i,j;
while (cin>>i>>j)
{
system("cls");
if (i < 0||j < 0) continue;
gotoxy(i,j);
cout<<"Hello World!"<<endl;
}
return 0;
}