基于c语言Easyx库的捕鱼达人小游戏
基于c语言Easyx库的捕鱼达人小游戏(一)
主菜单
(写在前面的话:使用EASY-X库一定要命名为.cpp文件,不然会报出一大堆错误,写程序可以选择全部用c语言或全部使用c++进行编写。切忌混用两种语言。)
1.窗口实例化: 主页面使用Easyx库自带的IMAGE函数,进行图片背景填充:
initgraph(1600, 900);//实例化一个1600*900的窗口
2.进行图片填充
IMAGE img_background;//创建一个IMAGE 对象 loadimage(&img_background, L"E:\img\bg01.png", 1600, 900);//使用加载图片的封装函数进行图片的加载 putimage(0, 0, &img_background);//展现图片
3.菜单栏的定制: 由于Easyx库没有直接的按钮对象,但我们可以通过鼠标监听实现按钮的功能
void mouseclicked()
{
MOUSEMSG msg;
//定义变量,保存鼠标信息
FlushMouseMsgBuffer();
//清空鼠标消息缓冲区,避免无效信息带入正式判断中
while (1) //主循环,循环监听鼠标信息;
{
while (MouseHit())//监听鼠标信息,当鼠标有消息的时候执行该函数,可以连续监听鼠标信息
{
msg = GetMouseMsg();//获取鼠标信息
if (WM_LBUTTONDOWN == msg.uMsg)//判断鼠标信息,当前鼠标左键被按下
{
if (msg.x >= 669 && msg.x <= 900 && msg.y >= 315 && msg.y <= 357)
{
game();
}
if (msg.x >= 669 && msg.x <= 900 && msg.y >= 376 && msg.y <= 413)
{
choosebackground();
}
if (msg.x >= 669 && msg.x <= 900 && msg.y >= 435 && msg.y <= 476)
{
showrules();
}
}
}
}
}
图中的文字需要自己用其他软件填充好.然后根据位置定好每个选项所在的举行的x,y轴的位置。 (Easyx鼠标监听返回的结构体中已经有鼠标的x,y的位置可以直接调用。) 4.更换背景的实现:
void choosebackground()
{
IMAGE img_background;//创建一个IMAGE 对象
loadimage(&img_background, L"E:\img\choice.png", 1600, 900);//使用加载图片的封装函数进行图片的加载
putimage(0, 0, &img_background);//展现图片
MOUSEMSG msg;
while (1) //主循环,循环监听鼠标信息;
{
while (MouseHit())//监听鼠标信息,当鼠标有消息的时候执行该函数,可以连续监听鼠标信息
{
msg = GetMouseMsg();//获取鼠标信息
if (WM_LBUTTONDOWN == msg.uMsg)//判断鼠标信息,当前鼠标左键被按下
{
if (msg.x >= 0 && msg.x <= 800 && msg.y >= 0 && msg.y <= 450)
{
display(1);
}
if (msg.x >= 800 && msg.x <= 1600 && msg.y >= 0 && msg.y <= 450)
{
display(2);
}
if (msg.x >= 0 && msg.x <= 800 && msg.y >= 450 && msg.y <=900)
{
display(3);
}
if (msg.x >= 800 && msg.x <= 1600 && msg.y >= 450 && msg.y <= 900)
{
display(4);
}
}
}
}
这里有四种背景可以选择 同样根据像素坐标,通过鼠标监听,实现背景的变换。 游戏规则同样原理实现。 5.注意事项: 进入二级菜单后要回到以及菜单需要用一级菜单图片进行重覆盖,Easyx目前没有直接关闭当前图片的函数: 6.点击开始游戏进入游戏:
