目录

内容大纲为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++语言快速上手图形和游戏编程。相关推荐

  1. python游戏编程快速上手豆瓣_Python游戏编程快速上手(第4版)

    领取成功 您已领取成功! 您可以进入Android/iOS/Kindle平台的多看阅读客户端,刷新个人中心的已购列表,即可下载图书,享受精品阅读时光啦! - | 回复不要太快哦~ 回复内容不能为空哦 ...

  2. Golang语言快速上手到综合实战(Go语言、Beego框架、高并发聊天室、豆瓣电影爬虫) 下载

    下载Golang语言快速上手到综合实战(Go语言.Beego框架.高并发聊天室.豆瓣电影爬虫) 下载地址:请加QQ:397245854 Go是Google开发的一种编译型,可并行化,并具有垃圾回收功能 ...

  3. 前端如何快速上手 Web 3D 游戏的开发

    简介: 本文以「余额宝3D跑酷游戏」为例,介绍了前端如何快速上手 Web 3D 游戏的开发. 作者 | RichLab楺楺 诚空 本文以「余额宝3D跑酷游戏」为例,介绍了前端如何快速上手 Web 3D ...

  4. 【C语言快速上手】带你了解C语言,零基础入门①

    前言        这是博主的第一篇学习博客,所写内容一定会有不足之处,希望读者能多多包涵理解,也希望各位大佬在阅读后能及时指出其中的问题,作者一定会积极采纳建议,不断改进,不断进步.在此感谢各位的指 ...

  5. python入门要多久-初学者如何快速上手python入门要多久

    今天跟大家讨论一下对于一个新手如何快速入门python. python是一种非常接近人类语言的解释性高级语言,如果你学过java,应该知道解释性语言区别于编译性语言.python作为一种高级语言,功能 ...

  6. Python 爬虫入门的教程(2小时快速入门、简单易懂、快速上手)

    http://c.biancheng.net/view/2011.html 这是一篇详细介绍 Python 爬虫入门的教程,从实战出发,适合初学者.读者只需在阅读过程紧跟文章思路,理清相应的实现代码, ...

  7. Golang语言快速上手到综合实战视频教程

    百度网盘下载 01.Go语言简介-.wmv 02.理解GOPATH.wmv 03.Go语言基础上.wmv 2 Y& ~9 }) P' U4 O 04.Go语言基础下.wmv 05.Go语言之流 ...

  8. 怎样学习C语言——快速上手C语言系列之—什么是指针

    指针对于C来说太重要.然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机硬件以及操作系统等方方面面的基本知识.所以本文尽可能的通过一篇文章完全讲解指针. 一,为什么需要指针? 指针解决 ...

  9. 程序员C语言快速上手——进阶篇(八)

    文章目录 进阶篇 程序结构与作用域 局部变量 全局变量 static关键字 extern关键字 模块化开发的补充 头文件的嵌套包含 头文件的保护 欢迎关注我的公众号:编程之路从0到1 进阶篇 程序结构 ...

最新文章

  1. 【radar】毫米波雷达简介
  2. python教学上机实验报告怎么写_Python基础(下)
  3. Shell(9)——sed(1)
  4. mysql的Table is readonly解决方案
  5. 短期记忆容量必需有限
  6. android h5控制锁屏,WebView播放H5课件时,锁屏解锁后,页面重新绘制的问题
  7. Linux中w r x数学代码,Linux bc命令实现数学计算器
  8. CentOS 逻辑卷扩容
  9. python怎么测试一个网站的延迟_Python检测网络延迟的代码
  10. EFS加密文件系统应用心得
  11. uniapp抖音小程序发布激励广告
  12. java导出excel 方式_java导出Excel通用方法
  13. 画论13 朱景玄《唐朝名画录》
  14. 网站日志分析(二)——利用Quick BI制作企业化报表分析
  15. nginx+keepalive实现高可用负载均衡
  16. 对软件测试团队“核心价值”的思考(来自 李云)
  17. 操作符详解<小罗爱c语言>
  18. bios设置练习器+CMOS设置模拟器+dos学习模拟器软件
  19. HaaS AI 应用实践“老板来了”系列之二 :WiFi摄像头人像采集
  20. 编程猫和python区别_西瓜创客和编程猫有什么不同?哪个更值得报名?

热门文章

  1. 6-3 结构体-成绩单排序
  2. 柱状山地图(我的世界风地图)(100种制图法4)
  3. SBA of anr/watchdog timeout
  4. Mysql原理与实践学习总结
  5. Mysql原理解析 - 基本架构
  6. low-level feature与high-level feature
  7. python csv模块 reader_Python之csv模块
  8. php中echo语句,php输出之echo和print语句
  9. php如何设置随机数,php怎么设置随机数
  10. java seda_Java seda,vm和direct之间有什么区别用camel解释它用一个例子