目录
1.cyfgame.h安装
2.函数使用方法
我先把自己写的代码放上^_^
一.头文件代码
/*库名称:cyfgame.h
版本:1.0
这是一个基于graphics.h图形库编写的一个十分轻量级的游戏编程库
如要使用,请先下载EGE图形库或EasyX*/
#include<graphics.h>
#include<windows.h>
int cyf[1000];
void creat_window(int x,int y,char name[60],int w,int h)//显示窗口,此函数为非必要函数,用EGE的initgraph可以使用,格式一样
{
initgraph(w,h);
setcaption(name);
movewindow(x,y);
}
void hide_cmd(void)//隐藏控制台
{
ShowWindow(GetForegroundWindow(),SW_HIDE);
}
bool aniu(char name[60],int x,int y,int bian,mouse_msg mouse)//按钮函数 1.按钮的png文件路径,x,y为按钮坐标,4.按钮编号(必须填写)5.定义一个鼠标结构体getmouse(),此函数需要在循环中使用
{
PIMAGE png=newimage();
int w,h;
getimage(png,name);
w=getwidth(png);
h=getheight(png);
if(cyf[bian]==0)
{
putimage(x,y,png);
cyf[bian]=1;
}
delimage(png);
if(mouse.is_down() && mouse.is_left() && mouse.y>=y && mouse.y<=y+h && mouse.x>=x && mouse.x<=x+w)
{
return true;
}
else
{
return false;
}
}
struct ROLE//角色结构体 pngname:png路径 x,y角色坐标 inint_role()初始化角色 move(x,y)移动角色多少格不是坐标
{
char pngname[60];
int x;
int y;
void getname(char name[60])
{
for(int i=0;i<=59;i++)
{
pngname[i]=name[i];
}
}
void init_role(void)
{
PIMAGE png=newimage();
getimage(png,pngname);
putimage_transparent(NULL,png,x,y,(0,0,0));
delimage(png);
}
void move(int x3,int y3)
{
PIMAGE png1=newimage();
getimage(png1,pngname);
putimage_transparent(NULL,png1,x+x3,y+y3,(0,0,0));
x+=x3;
y+=y3;
delimage(png1);
}
};
bool crash(ROLE a,ROLE b)//检测碰撞两个角色之间
{
PIMAGE png3=newimage(),png2=newimage();
int w1,h1,w2,h2;
getimage(png3,a.pngname);
getimage(png2,b.pngname);
w1=getwidth(png3);
h1=getheight(png3);
w2=getwidth(png2);
h2=getheight(png2);
delimage(png3);
delimage(png2);
if(a.x<=b.x)
{
if((a.x+w1>b.x)==false)
{
return false;
}
}
if(a.x>=b.x)
{
if((a.x+w1<b.x)==false)
{
return false;
}
}
if(a.y<b.y)
{
if((a.y+h1>b.y)==false)
{
return false;
}
}
if(a.y>b.y)
{
if((a.y+h1<b.y)==false)
{
return false;
}
}
if(a.y==b.y && a.x==b.x)
{
return false;
}
return true;
}
二.教程
这是所有函数功能的列表
creat_window函数 | 用于方便的显示一个带名称的EGE窗口 |
hide_cmd函数 | 隐藏控制台 |
aniu函数 | 生成一个带有图片的自定义按钮 |
crash函数 | 检测两个角色是否碰撞 |
ROLE结构体 | 生成游戏中的角色 |
1.如何使用cyfgame.h
####注意一定要安装EGE库才能使用####
VC,VS中直接把cyfgame.h头文件放在项目文件夹“头文件”中即可
DEV-C++ 安装步骤如下:
①找到DEV-C++安装路径
点击打开文件位置
我们会看见有一个MinGW64文件夹(这是g++编译器以及库文件所在的文件夹)
进入文件夹以后会看见如下界面
打开x86_64-w64-mingw32找到include文件夹,将cyfgame.h头文件放入文件夹就
大功告成了@_@
我们再来测试一下是否添加成功(这里有一段测试代码)
#include<graphics.h>//EGE头文件
#include<cyfgame.h>//这是我们的头文件
using namespace std;
int main()
{
creat_window(100,100,"My First EGE Game",500,500);//创建game窗口
hide_cmd();//隐藏控制台
getch();//“堵塞”窗口,让窗口一直显示在屏幕上
return 0;
}
如果安装成功会看到一个GUI窗口
2.函数使用方法
②.aniu函数
引用这个函数十分简单只要把它套进if语句中即可
if(aniu("aniu1.png",220,100,1,M)==true)//开始游戏
{
Red.Stop();
gamewindow();
}
正如这样显示按钮和检测按钮是否被按下(合二为一)
这是函数的用法:aniu("按钮图像路径",x轴坐标,y轴坐标,编号:随便填个数但不能与其他按钮重复:,鼠标结构体)
注:鼠标结构体为EGE中的mouse_msg,需要为:结构体=getmouse();在死循环中才能运行
③.ROLE结构体
getname() | 获取角色的图像路径 |
init_role() | 显示角色 |
move() | 移动角色 |
差不多就是下面示例代码这么用&_&
ROLE tank1,tank2;
tank1.getname("tan1.png");
tank1.x=500;
tank1.y=803;
tank1.init_role();
④.crash函数
这个用起来更简单,返回值为bool值,只用配合两个ROLE角色填到crash(角色1,角色2);返回为true 或 false直接判断是否碰撞
######文章到此结束,谢谢大家浏览 ######