EasyX必会基础

EasyX必会基础

  • 一、EasyX 是什么
  • 二、图像
  • 三、音乐
  • 四、键盘
  • 五、鼠标
  • 六、文字
  • 七、颜色
  • 八、实战

一、EasyX 是什么

EasyX Graphics Library是针对Visual C++的免费绘图库,支持VC6.0 ~VC2019,简单易用,学习成本极低,应用领域广泛。目前已有许多大学将EasyX应用在教学当中。(单击进入官网下载)

以下功能为EasyX_20210730版本,最新版本请下载查看EasyX帮助文档

二、图像

主要用贴图功能,做小游戏,需要注意的是坐标默认的原点在窗口的左上角,X 轴向右为正,Y 轴向下为正,度量单位是点。

#include//图形库
//或者#include

int main()
{
	//创建窗口640,480;
	initgraph(640,480);
	
	//图像
	IMAGE img;//定义图像变量
	loadimage(&img,L"填路径",640,480);//加载图片到 img 并将图片的长宽赋值640,480
	//路径可以是相对路径,也可以是绝对路径

	//贴图
	BeginBatchDraw();//这个函数用于开始批量绘图。执行后,任何绘图操作都将暂时不输出到屏幕上,
	putimage(0,0,&img);//将img图片贴在坐标(0,0)位置
	EndBatchDraw();//直到执行 EndBatchDraw 才将之前的绘图输出。

	return 0;
}

三、音乐

#include//音乐
//或者#include
#pragma comment(lib,"winmm.lib")//库文件 多媒体

int main()
[	
	//音乐
	mciSendString(L"open 填路径",0,0,0);//打开
	mciSendString(L"close 填路径",0,0,0);//关闭
	mciSendString(L"play 填路径",0,0,0);//播放
	mciSendString(L"stop 填路径",0,0,0);//停止
	mciSendString(L"pause 填路径",0,0,0);//暂停
	mciSendString(L"resume 填路径",0,0,0);//恢复
	
	//循环播放
	mciSendString(L"open 填路径",0,0,0);//打开
	mciSendString(_T("play 填路径 repeat"), 0, 0, 0);//repeat循环播放

	//仅支持wav格式音乐
	PlaySound(L"填路径", nullptr, SND_FILENAME | SND_ASYNC);
	
	return 0;
}

四、键盘

获取键盘消息,根据按键执行操作需要包含头文件#include

#include//按键

int main()
{	
	while(true){
		if (_kbhit())//检测是否有按键消息 有消息返回非零值
		{
			char ch = _getch();//需要包含conio.h
			switch (ch)//判断用户按了那些按键
			{
				case 'w':
				case 72://↑小键盘键值
					//执行相关操作
					breakcase 'a':
				case 75://←小键盘键值
					//执行相关操作
					breakcase 's':
				case 80://↓小键盘键值
					//执行相关操作
					breakcase 'd':
				case 77://→小键盘键值
					//执行相关操作
					break}
		}
	}
	return 0;
}

五、鼠标

获取鼠标消息,先了解消息结构体声明,这些均在#include

struct ExMessage
{
	USHORT message;					// 消息标识
	union
	{
		// 鼠标消息的数据
		struct
		{
			bool ctrl		:1;		// Ctrl 键是否按下
			bool shift		:1;		// Shift 键是否按下
			bool lbutton	:1;		// 鼠标左键是否按下
			bool mbutton	:1;		// 鼠标中键是否按下
			bool rbutton	:1;		// 鼠标右键
			short x;				// 鼠标的 x 坐标
			short y;				// 鼠标的 y 坐标
			short wheel;			// 鼠标滚轮滚动值,为 120 的倍数
		};
		//其余略
	};
};


EasyX必会基础_第1张图片


#include 
//或者#include

int main()
{
	initgraph(640,480);
	ExMessage m;// 定义消息变量
	while(true){
		m = getmessage(EM_MOUSE);// 获取一条鼠标消息
		if (m.message == WM_LBUTTONDOWN)
		{//如果鼠标左键按下
				closegraph();
		}
	}
	return 0;
}

六、文字

在使用的窗口时,需要用专门的文字输出函数

#include

int main()
{	
	initgraph(640,480);
	setbkmode(0);//设置文字背景透明,有背景贴图可用
	settextcolor(RED);//设置字体颜色  红色
	settextstyle(64, 0, _T("宋体"));//64是字体大小 0是自适应 双引号里可以填字体名字
	//参数1:指定高度(逻辑单位)
	//参数2:字符的平均宽度(逻辑单位)如果为 0,则比例自适应
	//参数3:字体名称
	outtextxy(0, 0, _T("Hello World!"));//输出文本的坐标(0,0) 后面是文本内容
	system("pause");//暂停看效果
	return 0;
}

七、颜色

可用RGB颜色:

RGB(0~255,0~255,0~255);

也可用预定义颜色常量,如下:

 常量 	    值 	    颜色   
BLACK     0          黑 
WHITE     0xFFFFFF   白 
BLUE      0xAA0000   蓝  
GREEN     0x00AA00   绿
CYAN      0xAAAA00   青 
YELLOW    0x55FFFF   黄 
RED       0x0000AA   红 
MAGENTA   0xAA00AA   紫 
BROWN	  0x0055AA   棕 
DARKGRAY     0x555555  深灰 
LIGHTGRAY    0xAAAAAA  浅灰 
LIGHTBLUE    0xFF5555  亮蓝
LIGHTGREEN   0x55FF55  亮绿 
LIGHTCYAN    0xFFFF55  亮青 
LIGHTRED     0x5555FF  亮红 
LIGHTMAGENTA 0xFF55FF  亮紫 

八、实战

EasyX必会基础_第2张图片

学完基础,点进来学习基于EasyX的推箱子游戏吧,保姆级教程,手把手教你写游戏!

EasyX必会基础_第3张图片

学完基础,点进来学习基于EasyX的拼图游戏吧,保姆级教程,手把手教你写游戏!

EasyX必会基础_第4张图片
学完基础,点进来学习基于EasyX的扫雷游戏吧,保姆级教程,手把手教你写游戏!

EasyX必会基础_第5张图片
学完基础,点进来学习基于EasyX的五子棋游戏吧,保姆级教程,手把手教你写游戏!

EasyX必会基础_第6张图片
学完基础,点进来学习基于EasyX的贪吃蛇游戏吧,保姆级教程,手把手教你写游戏!

你可能感兴趣的:(EasyX项目,c++)