EasyX必会基础

一、EasyX 是什么

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

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

二、图像

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

#include<easyx.h>//图形库
//或者#include<graphics.h>

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<mmsystem.h>//音乐
//或者#include<windows.h>
#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<conio.h>

#include<conio.h>//按键

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 <graphics.h>

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 的倍数
		};
		//其余略
	};
};


在这里插入图片描述


#include <graphics.h>
//或者#include<easyx.h>

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

六、文字

在使用<graphics.h>或<easyx.h>的窗口时,需要用专门的文字输出函数

#include<easyx.h>

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的推箱子游戏吧,保姆级教程,手把手教你写游戏!

拼图实战

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

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

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

贪吃蛇实战
学完基础,点进来学习基于EasyX的贪吃蛇游戏吧,保姆级教程,手把手教你写游戏!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值