EasyX 图形库入门,使用C/C++语言快速上手图形和游戏编程。
目录
内容大纲为B站up主“c语言Plus”的视频内容所记录的笔记,感兴趣的小伙伴可前去了解更多小游戏的开发教程。
目录
导读
原理
安装
一、用于窗口的基础操作
二 、图形绘制函数用于在窗口绘制各种图形
三、文字绘制函数用于在窗口上绘制文字
四 、图像处理函数用于在窗口上显示图片
五、键盘消息函数用于获取键盘按键消息
六、播放音乐
七、其他函数
内容大纲为B站up主“c语言Plus”的视频内容所记录的笔记,感兴趣的小伙伴可前去了解更多小游戏的开发教程。
目录
导读
EasyX 是针对 C/C++ 的图形库,可以帮助使用C/C++语言的程序员快速上手图形和游戏编程。
比如,可以用 VC + EasyX 很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,可以练习图形学的各种算法,等等。
原理
基于Winwods图形编程,将Windows下的复杂程序过程进行封装,将Windows下的编程过程隐藏,给用户提供一个简单熟悉的接口。用户对应图形库中函数的调用,最终都会由Windows的底层API实现。
安装
EasyX图形库指出Vs各种版本,下载解压后,直接执行安装程序即可。而其本质就是查找Vs的安装目录,并将相关文件分别拷贝至lib目录和include目录。
安装成功后,包含头文件graphics.h即可快乐了【doge】。
一、用于窗口的基础操作
1.EasyX坐标的原点在窗口的左上角,X轴正方向向右,Y轴正方向向下,单位是一个像素点。
2.initgraph(int width, int height, int flag =NULL);用于初始化绘图窗口(即创建)
窗口初始化参数:
SHOWCONSOLE:创建图形窗口时,保留控制台的显示
NOCLOSE:没有关闭功能
NOMINIMIZE:没有最小化功能
3.closegraph();关闭绘图窗口
4.cleardevice();清空绘图设备
二 、图形绘制函数用于在窗口绘制各种图形
1.绘图函数从填充样式分类可分为无填充,有边框填充,无边框三种。
以画圆为例
circle() 无填充
fillcircle() 有边框填充
solidcircle()无边框填充,参数分别为圆心的横坐标、纵坐标、半径大小。
2.从形状来分,常用的可以分为八种
circle 画圆 ellipse 画椭圆 pie 画扇形 polygon 画多边形
rectangle 画矩形 roundrect 画圆角矩形 line 画线 putpixel 画点
3.设置填充颜色setfillcolor(颜色);括号内输入颜色的英文名称
设置线条颜色setlinecolor(BLUE);
设置线条样式setlinestyle(高度,宽度,字体);
设置背景颜色setbkcolor();
三、文字绘制函数用于在窗口上绘制文字
1.outtextxy(int x,int y, LPCSTR str);在指定位置输出字符串
2.settextcolor(COLORREF color);设置当前文字颜色
3.settextstyle(int nHeight,int nWidth,LPTSTR lpszFace)设置字体样式
nHeight 指定高度
nWidth 字符的平均宽度。如果为0,则比例自适应 lpszFace 字体名称
4.textheight(LPCTSTR str);获取字符串实际占用的像素高度
5.textwidth(LPCTSTR str);获取字符串实际占用的像素宽度
四 、图像处理函数用于在窗口上显示图片
1.在使用图像之前,需要定义一个变量(对象),然后把图片加载进变量才能进行使用。
平时定义变量都是使用的基础数据类型,比如:int temp;
在使用图像的时候需要使用easyx提供给我们的类型:IMAGE,如:IMAGE img;
2.loadimage(IMAGE* pDstlmg,LPCTSTR plmgFile,int nWidth=0,int nHeight=0,bool bResize=false);从文件中读取图像
pDstlmg. 11保 存图像的IMAGE对象指针 plmgFile, //图片文件名
nWidth=0 //图片的拉伸宽度
nHeight=0, //图片的拉伸高度
bResize=false //是否调整IMAGE的大小以适应图片
3.putimage(int dstXint dstYIMAGE*pSrclmgDWORDdwRop=SRCCOPY);在当前设备上绘制指定图像。
dstX, //绘制位置的x坐标
dstY //绘制位置的y坐标
pSrclmg, //要绘制的IMAGE对象指针
dwRop=SRCCOPY,//三元光栅操作码
五、键盘消息函数用于获取键盘按键消息
1.用于获取鼠标消息的函数有两个
_getch(); 需要头文件conio.h
GetAsyncKeyState(键值); 需要头文件windowsh但是由于EasyX包含了 windows头文件,所以无须自己包含(其他需要windows头文件的函数也一样,但是需要在 graphics.h的下方包含:比如放音乐的头文件mmsystem.h)
getch();需要使用返回值来判断
■与非ASCII表字符的按键比较,需要使用虚拟键值
如果是与字母比较直接写字母,比如'A 上:72 下:80 左:75 右:77
GetAsyncKeyState(键值);需要传入一个键值,如果按下返回真了
上:VK UP 下:VK DOWN 左:VK LEFT 右:VKRIGHT
六、播放音乐
1.为了实现用C语言播放音乐,我们需要用到windows的一个API
首先需要包含头文件windows。h和mmsystem。h(如果已经包含graphics.h则无
需包含)
然后还需要加载静态库winmm.lib
最后就可以使用mciSendString函数来播放音乐了
MCIERRORmciSendStringA(
LPCSTRIpstrCommand,//命令字符串:”命令设备[参数]”
LPSTRIpstrReturnString,//接收返回信息的缓冲区,为NULL时不返回信息
UINT uReturnLength, //上述缓冲区的大小
HWNDhwndCallback,//一般为NULL
);
2.使用方法:
mciSendString("open ./ThatGirl.mp3 alias BGM",NULL,0,NULL);//打开音乐 mciSendString("playBGM",NULL,0, NULL);//播放音乐
七、其他函数
1.在设备上不断进行绘图操作时,会产生闪屏现象,此时眼睛就受不了了,针对这个想象,我们需要使用两个函数去处理。
BeginBatchDraw(); 开始批量绘图
---中间放置绘图代码---
EndBatchDraw(); 结束批量绘制
2.GetHWnd(); 获取窗口句柄,获取之后可以用来操作窗口
HWND hWnd=GetHWnd();//获得窗口句柄
修改窗口标题: SetWindowText(hWnd , "love");
设置模态对话框: MessageBox(hWnd,"我是消息框","我是标题" ,MB OKCANCEL);
EasyX 图形库入门,使用C/C++语言快速上手图形和游戏编程。相关推荐
- python游戏编程快速上手豆瓣_Python游戏编程快速上手(第4版)
领取成功 您已领取成功! 您可以进入Android/iOS/Kindle平台的多看阅读客户端,刷新个人中心的已购列表,即可下载图书,享受精品阅读时光啦! - | 回复不要太快哦~ 回复内容不能为空哦 ...
- Golang语言快速上手到综合实战(Go语言、Beego框架、高并发聊天室、豆瓣电影爬虫) 下载
下载Golang语言快速上手到综合实战(Go语言.Beego框架.高并发聊天室.豆瓣电影爬虫) 下载地址:请加QQ:397245854 Go是Google开发的一种编译型,可并行化,并具有垃圾回收功能 ...
- 前端如何快速上手 Web 3D 游戏的开发
简介: 本文以「余额宝3D跑酷游戏」为例,介绍了前端如何快速上手 Web 3D 游戏的开发. 作者 | RichLab楺楺 诚空 本文以「余额宝3D跑酷游戏」为例,介绍了前端如何快速上手 Web 3D ...
- 【C语言快速上手】带你了解C语言,零基础入门①
前言 这是博主的第一篇学习博客,所写内容一定会有不足之处,希望读者能多多包涵理解,也希望各位大佬在阅读后能及时指出其中的问题,作者一定会积极采纳建议,不断改进,不断进步.在此感谢各位的指 ...
- python入门要多久-初学者如何快速上手python入门要多久
今天跟大家讨论一下对于一个新手如何快速入门python. python是一种非常接近人类语言的解释性高级语言,如果你学过java,应该知道解释性语言区别于编译性语言.python作为一种高级语言,功能 ...
- Python 爬虫入门的教程(2小时快速入门、简单易懂、快速上手)
http://c.biancheng.net/view/2011.html 这是一篇详细介绍 Python 爬虫入门的教程,从实战出发,适合初学者.读者只需在阅读过程紧跟文章思路,理清相应的实现代码, ...
- Golang语言快速上手到综合实战视频教程
百度网盘下载 01.Go语言简介-.wmv 02.理解GOPATH.wmv 03.Go语言基础上.wmv 2 Y& ~9 }) P' U4 O 04.Go语言基础下.wmv 05.Go语言之流 ...
- 怎样学习C语言——快速上手C语言系列之—什么是指针
指针对于C来说太重要.然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机硬件以及操作系统等方方面面的基本知识.所以本文尽可能的通过一篇文章完全讲解指针. 一,为什么需要指针? 指针解决 ...
- 程序员C语言快速上手——进阶篇(八)
文章目录 进阶篇 程序结构与作用域 局部变量 全局变量 static关键字 extern关键字 模块化开发的补充 头文件的嵌套包含 头文件的保护 欢迎关注我的公众号:编程之路从0到1 进阶篇 程序结构 ...
最新文章
- 【radar】毫米波雷达简介
- python教学上机实验报告怎么写_Python基础(下)
- Shell(9)——sed(1)
- mysql的Table is readonly解决方案
- 短期记忆容量必需有限
- android h5控制锁屏,WebView播放H5课件时,锁屏解锁后,页面重新绘制的问题
- Linux中w r x数学代码,Linux bc命令实现数学计算器
- CentOS 逻辑卷扩容
- python怎么测试一个网站的延迟_Python检测网络延迟的代码
- EFS加密文件系统应用心得
- uniapp抖音小程序发布激励广告
- java导出excel 方式_java导出Excel通用方法
- 画论13 朱景玄《唐朝名画录》
- 网站日志分析(二)——利用Quick BI制作企业化报表分析
- nginx+keepalive实现高可用负载均衡
- 对软件测试团队“核心价值”的思考(来自 李云)
- 操作符详解<小罗爱c语言>
- bios设置练习器+CMOS设置模拟器+dos学习模拟器软件
- HaaS AI 应用实践“老板来了”系列之二 :WiFi摄像头人像采集
- 编程猫和python区别_西瓜创客和编程猫有什么不同?哪个更值得报名?
热门文章
- 6-3 结构体-成绩单排序
- 柱状山地图(我的世界风地图)(100种制图法4)
- SBA of anr/watchdog timeout
- Mysql原理与实践学习总结
- Mysql原理解析 - 基本架构
- low-level feature与high-level feature
- python csv模块 reader_Python之csv模块
- php中echo语句,php输出之echo和print语句
- php如何设置随机数,php怎么设置随机数
- java seda_Java seda,vm和direct之间有什么区别用camel解释它用一个例子