C语言_写简易吃豆人小游戏

简易参考这个视频:听一遍就懂:
https://www.bilibili.com/video/BV1SB4y1u7gp?t=1185
需要用到easyx库,文档:
https://docs.easyx.cn/zh-cn/intro

大致能实现:生成豆子,躲避敌人,计分(有一点问题)

我自己加上了豆子和吃豆子的部分:
豆子很简单,随机生成就行,吃豆子要看边界条件

代码比较长,没有分流到其他头文件

环境:visual studio 2019
注意看 项目 -> 属性:有几个地方要调:注意平台是win32
1.使用多字节字符集
在这里插入图片描述
2.C/C++里面 SDL检查设置为否
应该就这些了,其他没问题
图片自己找

写了更详细的文档,有需要的私信

#include <stdio.h>
#include <easyx.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#include <graphics.h>

/*****************************定义*********************************************/
//定义数据
#define WIDTH  960
#define HEIGHT 630     //初始化窗口
#define ENEMY_NUM 4    //敌人数量
#define BEAN_NUM 15    //豆子数量
#define R 10

int price = 0;   //初始化得分
int end=2;       //结束方式:0成功,1失败, 2正常 

IMAGE mapImg; //定义背景图片
unsigned long tt1, tt2;

//定义玩家
struct Player
{
   
	int x, y;
	int dirx, diry; //玩家的方向
	IMAGE player_photo; //玩家图片
	unsigned long t1, t2, dt; //dt=t2-t1
};
//玩家
Player player;

//定义怪兽
Player enemy[ENEMY_NUM];

//定义豆子
struct bean
{
   
	int x,y,r;
	bool exist;  //豆子是否存在
};

bean beans[BEAN_NUM];  //定义豆子数量

/********************************初始化数据界面******************************************/

void GameInit()
{
   
	srand(time(0));
	//初始化游戏窗口:宽度和高度
	initgraph(WIDTH, HEIGHT);

	//初始化游戏界面,欢迎界面
	while (!_kbhit())
	{
   
		settextcolor(RED);
		settextstyle(50, 30, _T("宋体"));
		outtextxy(130, 50, "欢迎来到吃豆人小游戏!");
		settextstyle(40, 20, _T("楷体"));
		outtextxy(400, 130, "游戏规则");
		settextcolor(GREEN);
		settextstyle(40, 20, _T("楷体"));
		outtextxy(300, 200, "1.请吃完所有的豆子");
		outtextxy(300, 270, "2.请躲避红色的敌人");
		outtextxy(260, 340, "3.上下左右键控制吃豆人移动");
		outtextxy(300, 410, "4.按空格键暂停游戏");

		int a = 255;
		while (!_kbhit())
		{
   
			settextstyle(30, 15, _T("宋体"));
			settextcolor(RGB(a, 0, 255));
			outtextxy(270, 500, "请按除空格外的任意键开始游戏");
			Sleep(41);
			a -= 5;
			if (a == 0)
				a = 255;
		}
	}

	//初始化背景图片
	loadimage(&mapImg, "map.jpg");
	putimage(0, 0, &mapImg);

	//初始化玩家
	player.x=400;   //初始化玩家的位置
	player.y=300;
	player.dirx=1;
	player.diry=0;
	loadimage(&player.player_photo,"man.PNG&#
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值