easyx库的介绍与使用
easyx库的介绍与使用
- 简单介绍
- 下载安装
- 注意事项
- 1.创建一个窗口(initgraph)
- 2.图形绘制
- 画圆(circle,solidcircle)
- 画线条(line)
- 画矩形(rectangle)
- 设置填充颜色(setfillcolor)
- 设置线条颜色(setlinecolor)
- 设置背景颜色(setbkcolor)
- 清屏函数(cleardevice)
- 设置背景模式(setbkmode)
- 3.文字
- 文字的打印(outtextxy)
- 文字的颜色(settextcolor)
- 文字的形式(settextstyle)
- 4.图片的使用(重点)
- 第一步:放图片
- 第二步:定义图片(IMAGE)
- 第三步:加载图片(loadimage)
- 第四步:图片的打印(putimage)
- 5.音乐的使用
- 6.消息(鼠标 键盘)
- 消息的定义(ExMessage)
- 消息的接受(peekmessage)
- 键盘和鼠标的使用
- 应用:如何控制游戏里人物的移动
- 源码讲解领取(gitee)
简单介绍
EasyX Graphics Library 是针对 Visual C++ 的免费绘图库,支持 VC6.0 ~ VC2022,简单易用,学习成本极低,应用领域广泛。目前已有许多大学将 EasyX 应用在教学当中。并且能够抛弃无聊的黑窗口,使得制作一些程序变得更加有趣。
下载安装
可以选择在百度搜索easyx库官网下载,下载安装非常快,不超过2分种.
注意事项
1.如果在使用的时候报错,可能是因为需要用多字节字符集,点击项目—>属性—>找到字符集 ,将它改为 多字节字符集
2. 使用easyx图形库,要使用头文件 #include<graphics.h>
1.创建一个窗口(initgraph)
initgraph函数有三个参数,第一个是窗口的宽度,第二个是窗口的高度,第三个参数有三个功能,第一个是展示控制台(SHOWCONSOLE—>show 展示,console 控制台)
include<stdio.h>
#include<graphics.h>int main()
{initgraph(460, 460,SHOWCONSOLE);while (1){; // 使程序卡住,不闪退,方便看到效果}return 0;
}
第二个 NOCLOSE(没有关闭功能)
include<stdio.h>
#include<graphics.h>int main()
{//initgraph(460, 460,SHOWCONSOLE);initgraph(460, 460, NOCLOSE);while (1){; // 使程序卡住,不闪退,方便看到效果}return 0;
}
第三个功能 NOMINIMIZE(没有关闭功能)
#include<stdio.h>
#include<graphics.h>int main()
{//initgraph(460, 460,SHOWCONSOLE);//initgraph(460, 460, NOCLOSE);initgraph(460, 460, NOMINIMIZE);while (1){; // 使程序卡住,不闪退,方便看到效果}return 0;
}
注意的是,initgraph函数的第三个参数,需要的话可以写,不需要的话,也可以不用写。
2.图形绘制
画圆(circle,solidcircle)
circle(int x, int y, r) , solidcircle(int x, int y, r) -->实心圆
圆心坐标(x, y),圆的半径r
画线条(line)
line(int x1, int y1, int x2, int y2)
线条为 (x1, y1) 和 (x2, y2)两个点连接成的
画矩形(rectangle)
rectange(int x1,int y1,int x2, int y2)
(x1, y1)左上顶点 (x2, y2)右下顶点 画矩形
设置填充颜色(setfillcolor)
注意:颜色需要大写 例如 setfillcolor(GREEN)
设置线条颜色(setlinecolor)
颜色需要大写,setlinecolor(GREEN)
设置背景颜色(setbkcolor)
setbkcolor(GREEN)
清屏函数(cleardevice)
设置背景时候,需要用清屏函数(无参数),将window的黑色除去,才能够显示出setbkcolor函数所设置出的颜色。
设置背景模式(setbkmode)
一般在做游戏或者其他项目中,用来设置成透明的
setbkmode(TRANSPARENT) -->transparent 透明的
3.文字
文字的打印(outtextxy)
outtextxy(int x, int y, 文字)
(x,y)位置 例如 outtextxy(40,50,“你好呀”)
文字的颜色(settextcolor)
settextcolor(GREEN)
[外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述]议将图片上https://传(imblog.csdnimg.cn/883a0ab0cjoZ134bc9bfa562bd1771c2be.ng)(https://imgblog.csdnimg.cn/88903a0abc134bc9bfa562bd1771c2be.png)]
文字的形式(settextstyle)
settextstyle(int x, int y, 字体)
(x, y) 位置
例如 settextstyle(40, 40, “宋体”)
4.图片的使用(重点)
第一步:放图片
先将图片复制粘贴到项目所在的文件夹
第二步:定义图片(IMAGE)
用IMAGE对图片进行定义,例如 IMAGE image
如果图片不止一张,用数组贮存图片,例如IMAGE image[N],N代表图片的数量
第三步:加载图片(loadimage)
IMAGE image;
loadimage(&image,“(定义图片的地址)”),.“./images/2.bmp”(放图片的位置));
注意:如果出现重载中没有一个可以转换参数的类型的报错
有三种解决方法:
第一种(最简单的方法):调成多字节字符集(具体步骤在前面的注意事项中)。
第二种,在loadimage函数中,放图片的位置的参数前面加上个,_T(放图片的位置)。
第三种方法:在放图片位置的参数前面加上个L。
第四步:图片的打印(putimage)
putimage(int x, int y, 定义图片的地址)
(x, y)表示位置
同时loadimage函数的第三个参数和第四个参数,分别表示图片的宽度和高度。
实例:
5.音乐的使用
首先声明一点,这个并不属于easyx库,而是属于windows,所以就需要用头文件,#include<mmsystem.h>(mm- 多媒体的,system系统,多媒体系统),还需要个库文件**#pragma comment(lib, “winmm.lib”) —>windows的多媒体库文件**,同样也需要把音乐,复制粘贴到项目所在的文件夹中
#include<stdio.h>
#include<graphics.h>
#include<mmsystem.h> // 包含多媒体设备接口文件
#pragma comment(lib, "winmm.lib")
int main()
{initgraph(460, 460);//第一种mciSendString("open ./fire/小幸运.mp3", 0, 0, 0);mciSendString("play ./fire/小幸运.mp3", 0, 0, 0);// //第二种方法 alias 取别名 bk//mciSendString("open ./fire/小幸运.mp3 alias bk", 0, 0, 0); 打开音乐//mciSendString("play bk ", 0, 0, 0); 播放音乐// mciSendString("close ./fire/小幸运.mp3", 0, 0, 0); 关闭音乐//如果想程序运行一会儿 自动关闭音乐,//可以使用Sleep函数,然后再关闭音乐的函数,Sleep(3000)表示前面的程序执行3秒,再执行下面的程序 while (1){; // 使程序卡住,不闪退,方便看到效果}return 0;
}
其中mciSendString 最后三个参数 分别是 快进 快退,这里播放,就没管,全为0。
6.消息(鼠标 键盘)
首先,我们应该知道,initgraph 创建的窗口的无法直接使用键盘和鼠标操作的,所以接下来我们来学习,怎样输出消息。
消息的定义(ExMessage)
直接使用 ,像这样Exmessage m;来定义一个消息
消息的接受(peekmessage)
peekmessage(参数1, 参数2),peekmessage的参数1为消息的地址,参数2则为接受消息的对象(键盘或者鼠标或者都有),所以peekmessage的参数2有3种,分别是EM_MOUSE(鼠标) , EM_KEY(键盘), EM_MOUSE | EM_KEY(鼠标和键盘)
#include<stdio.h>
#include<graphics.h>int main()
{ExMessage m; // 定义消息peekmessage(&m, EM_KEY); //接受消息(键盘)peekmessage(&m, EM_MOUSE); //接受消息(鼠标)peekmessage(&m, EM_KEY | EM_MOUSE);// 接受消息(鼠标和键盘)return 0;
}
键盘和鼠标的使用
#include<stdio.h>
#include<graphics.h>
#include<mmsystem.h>
#pragma comment(lib, "winmm.lib")int main()
{initgraph(460, 460);ExMessage m; // 定义消息//peekmessage(&m, EM_KEY); //接受消息(键盘)//peekmessage(&m, EM_MOUSE); //接受消息(鼠标)peekmessage(&m, EM_KEY | EM_MOUSE);// 接受消息(鼠标和键盘)mciSendString("open ./fire/11.mp3", 0, 0, 0);while (1){if (m.message == WM_LBUTTONDOWN) // 鼠标左键 M_RBUTTONDOWN 鼠标右键{mciSendString("play ./fire/11.mp3", 0, 0, 0);}if (m.message == WM_KEYDOWN) // 按键{if (m.vkcode == 'f') // 如果按f 就播放小幸运 {mciSendString("pause ./fire/11.mp3", 0, 0, 0);}}}return 0;
}
应用:如何控制游戏里人物的移动
ExMessage msg;peekmessage(&msg, EM_KEY);switch (msg.message){case WM_KEYDOWN://键盘按下消息switch (msg.vkcode){case VK_LEFT://按下左键break;case VK_RIGHT://按下右键break;case VK_UP://按下上键break;case VK_DOWN://按下下键break;}break;}
其中,例如 case VK_LEFT : 中,可以自行添加事物(人), 移动的距离,以及是否超出游戏边界的判断条件。
源码讲解领取(gitee)
gitee:easyx库使用讲解源码
所学有限暂时先介绍到这里,后续可能有补充,如有错误还请指出。
easyx库的介绍与使用相关推荐
- C语言书写推箱子(坤坤版easyx库)
C语言书写推箱子(坤坤版easyx库) 游戏效果的展示 运用的知识点(必看) 代码的讲解 游戏地图的实现 地图的初始化 地图图片的加载 地图图片的放置 人物和箱子的移动(重点) 游戏结束的判断 音乐的 ...
- 用C语言easyx库制作简易Flappy Bird小游戏
前言 Flappy Bird是一款休闲类小游戏,相信大家都有玩过或者听说过,曾经在中国也是风靡一时的小游戏.今天我要给大家介绍的是用c语言编写这款小游戏,我会讲述一些我自己的思路,有任何不妥之处请浏览 ...
- 【Easyx库基础用法教程】
Easyx图像库 @[TOC](Easyx图像库) 1.1简单介绍 1.2Easyx原理 2.Easyx基础知识 2.1Easyx颜色 2.2Easyx坐标和设备 3.Easyx图形编程----窗口函 ...
- easy-x库graphics.h图形库安装
easy-x库graphics.h图形库安装 graphics.h就是C++下easy-x库的一个图形库,还蛮好玩的,你想用vc6.0还是VS都是需要自己安装这个库的,接下来就来看着怎么安装吧! 一. ...
- C++各大有名库的介绍之C++标准库
C++各大有名库的介绍之C++标准库 标准库中提供了C++程序的基本设施.虽然C++标准库随着C++标准折腾了许多年,直到标准的出台才正式定型,但是在标准库的实现上却很令人欣慰得看到多种实现,并且已被 ...
- Android之Google推荐的图片加载库Glide介绍
原文链接:Google推荐的图片加载库Glide介绍 作者 : nuuneoi 译者 : jianghejie 校对者 :
- 数据分析与挖掘中常用Python库的介绍与实践案例
数据分析与挖掘中常用Python库的介绍与实践案例 一.Python介绍 现在python一词对我们来说并不陌生,尤其是在学术圈,它的影响力远超其它任何一种编程语言, 作为一门简单易学且功能强大的编程 ...
- matlab图片导出无失真库export_fig介绍(半透明效果)
matlab图片导出无失真半透明等功能的库export_fig介绍 首先,感谢export_fig的作者Yair Altman为相关方面做了很多介绍,本文主要结合新版本matlab,对作者的内容进行搬 ...
- EasyX入门和介绍
//EasyX入门和介绍 //画实心圆 #include <graphics.h> //引用EasyX图形库 #include <conio.h> int main() {in ...
最新文章
- ue4 classuobject没有成员beginplay_UE4中蓝图函数的泛型
- linux内核杂记(12)-进程调度(7)
- Linux LVM与磁盘配额详解
- Exchange 2003 OWA登陆非常慢!
- Linux常见英文报错中文翻译(菜鸟必知)
- T-SQL | 你需要了解的执行计划
- 打开网页出现运行脚本错误的解决技巧
- vmware虚拟机安装CentOS8提示错误:section %package does not end with %end(可用)
- 20200619每日一句
- 高淇Struts2.0教程之视频笔记(4)
- 主机overlay和网络overlay_边缘计算中kubernetes网络能大一统吗?
- 单片机(ISIS 7 Professional):简易红绿灯代码项目
- 服务器cpu天梯图_12月更新最新CPU天梯图amp;显卡天梯图,选购电脑必看(含台式与笔记本电脑CPUamp;显卡)含机型推荐...
- 如何查看谷歌浏览器的版本
- Leedcode错误 error:control reaches end of non-void function[-Werror=return-type]
- 文本数据的词云可视化
- java 世界协调时间格式_Java核心教程之常见时间日期的处理方法
- QQ2011 Beta3优先体验(附官方体验地址及下载地址)
- 时间复杂度-严蔚敏老师
- 支付宝小程序map地图