C++游戏头文件(基于EGE图形库的游戏头文件代码及教程)

本文介绍了cyfgame.h游戏编程库,包含头文件代码,如creat_window、hide_cmd、aniu和crash等函数的详细说明,以及如何在VC++和DEV-C++环境中安装和使用。重点讲解了角色结构体和碰撞检测功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 一.头文件代码

 二.教程

        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直接判断是否碰撞 

######文章到此结束,谢谢大家浏览 ######

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值