Easyx 笔记,课设补充,迷宫游戏

本文是作者学习C++图形库Easyx的心得笔记,介绍了如何使用Easyx创建彩色图形窗口,包括窗口的开启、关闭、清屏,以及点、线、圆、矩形的绘制,键盘和鼠标事件的处理,图片加载,音乐播放,文本输出等基本功能。同时,作者通过一个迷宫游戏实例展示了Easyx的应用,并探讨了几种实现地图的思路。
摘要由CSDN通过智能技术生成

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);//左上坐标,右下坐标

键盘移动

1if(kbhit())//判定是否有键盘输入

2:得到输入字符
char c=_getch();

3.进行键盘控制移动:定义switchcase
例如:
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连,自家人看笔记。

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值