Easyx笔记 - - -关于课设的补充
面对着黑色的控制台,不免有些厌烦。从知乎童晶老师那知道了c语言是可以做比较有色彩的游戏的,但是要借助下载的外部文件--------easyx(c++图形库)。
以下仅是本人学习easyx的笔记,十分基础,大佬请绕道,有感兴趣的0基础的同学可以一看。
为了加强实践性,我用了一个十分简单的迷宫案例代入。(map由图片实现,不设计数组)
目录
easyx的下载
easyx是c++图形库,因此创建.cpp文件,但可以用c语言写
easyx可以从官网进行下载(官网地址)
官网有基础教程提供学习,非常值得一看。
窗口的开辟、关闭、清屏
窗口开辟
窗口开辟函数
#include<graphics.h>//easyx头文件
int mian (void)
{
initgraph(200,200,1);//新建窗口参数(长,宽,是否显示控制台)
}
关闭
窗口关闭
closegraph();//不需要参数,直接使用
清屏
清屏函数
cleardevice();//同样不需要参数,直接使用
一些问题
当直接调用上述函数时,出现的窗口会直接关闭,为了停留在窗口,这里可以输入字符来控制。
//以前的方法:
getchar();//在<stdio.h>,需要输入回车
//现在的方法
_getch();//在<conio.h>,不需要回车,直接读取
画图(点、线、圆,矩形)
一些思路:用数学函数进行线画圆,画一些比较精美的图形
点
注意:坐标系以窗口右上角为原点,x轴右为正方向,y轴向下为正方向
画点:
putpixel(x,y,c);//参数:横坐标,宗坐标
线
注意颜色的层叠关系
画线:
line(x1,y1,x2,y2);//参数依次为线始点横坐标,纵坐标,结束点横纵坐标
给线条颜色:
setlinecolor();//参数为颜色值,可以是WHITE(英文大写,但很多色彩没有)可以说RGB(,,),也可以是16进制数
圆
画圆:
1.无填充的圆
circle(x,y,r);//参数:x坐标,y坐标,半径r
2:有边框的圆fillcircle();//参数如上
给边框点颜色康康:setfillcolor();
线条状态:setlinestyle(PS_SOLID,5);//参数:线条状态,粗细
矩形:
矩形函数:
Rectangle(X1,Y1,X2,Y2);//左上坐标,右下坐标
键盘移动
1:
if(kbhit())//判定是否有键盘输入
2:得到输入字符
char c=_getch();
3.进行键盘控制移动:定义switch、case
例如:
line(x,100)
if(kbhit())
{
char c=_getch();
switch(c)
case 'A'://按A右移动
x++;
break;
line(x,100);
}
鼠标移动
鼠标输入比键盘复杂一丢丢,但还行:
1.定义鼠标操作
MOUSEMSG msg;//类似结构体类型定义
2.接受键盘信息
msg=GetMouseMsg();
3.鼠标消息的一个成员uMSG
uMSG.x;//鼠标按的位置的x坐标、
uMSG.y;//鼠标按的位置的y坐标、
图片加载
1.图片定义函数
IMAGE img;
2.图片加载函数:
loadimage(&img,"1.jpg",250,250);//参数:曲地址,图片位置(绝对路径和相对路径),图片拉伸后x大小,y大小
3.putimage绘图函数
putimage(0,0,&img);//参数:图片的起始坐标,取定义变量地址
音乐标签
网上与音效的免费下载网站
音乐播放用到的东西较多
#include<mmsystem.h>//多媒体接口
#pragma comment(lib,"winmm.ib")//加载静态库
//播放音乐
void BGM()
{
//打开
mciSendString("open ./1.mp3 alias BGM",0,0,0);
alias是取别名,将1.mp3取名BGN
//播放
mciSendString("open BGM repeat",0,0,0);
repeat重复播放
//结束
mciSendString("close BGM",0,0,0)
}
文本输出
文字编译函数:
文字编译函数:
outtextxy(x,y,"字符串");
SetTextColor(颜色值);
settextstyle(,,"微软雅黑");//设置字体大小和字体
背景函数:
设置背景颜色
setbkcolor();
设置背景模式
setbkmode(TRANSPARENT);//透明
消息框
1.获取窗口句柄
HWND hWnd();//定义
GetHWind();//获取
SetWindowText(hWind,"xxx");
2.模拟对话框
MessageBox(hWind,"消息框","标题",MB_OK);//最后一个参数有很多可选项,百度一下你就知道
map实现的几种想法(未敲代码)
由于介绍代码实在是枯燥,因此本人做了一个迷宫游戏进行时间,有需要的同学可以私信,想跟大家一起讨论,map地图的实现
1.图片:
在我实现的迷宫函数中,我的地图是用网上的图片实现,只要鼠标定位输出图片的坐标我就能在起始点画圆并且定义结束点
缺点:可以不走迷宫规定的线路
2.线条
可以定义线条,并让圆的最高点不超过线条
缺点:分析的情况特别多,而且是迷宫!!!
3.数组
这个是输入,1时输出线条,2时空格,思想如此,具体操作还在学习中(不更新)
有想学的可以去B站找视频
4.行编写完就看到大佬的文章
超链接传送门
最后
码字不易,多交流,不求3连,自家人看笔记。