使用C语言实现贪吃蛇(超详细)

目录

实现贪吃蛇我们要知道哪些?

Easyx图形库

Easyx的安装

游戏思路

游戏实现

头文件的使用

 ​编辑和食物以及控制方向的初始化

对于坐标的实现:

食物颜色的实现:

游戏数据的初始化

加载音乐

图形窗口的设置:

 蛇身节数的初始化:

食物的初始化

绘制游戏元素

移动蛇

贪吃蛇的穿墙实现

 通过键盘移动蛇和暂停游戏

_kbbit()函数作用

 蛇的移动判定

暂停游戏

判断蛇吃到食物

蛇吃到食物后的增长

 在main函数中调用各个函数

一些操作问题

键盘控制不了蛇的移动:


实现贪吃蛇我们要知道哪些?

Easyx图形库

我们需要安装Easyx配置到vs2022中,使游戏的背景颜色、蛇的颜色、食物的颜色可供我们随意设置,这样就不必再以前那个黑乎乎的终端命令窗口打开了

Easyx的安装

官网链接:https://easyx.cn/

在这个官网里不仅有简单的按照步骤还有关于一些库函数的介绍,教程通俗易懂,仅仅需要一点函数的知识。


游戏思路

我们需要知道蛇的移动是靠坐标的变换来实现的,食物的出现也是这样,这里的坐标系和我们日常数学中的有些区别(y轴的方向相反):

另外我们还需要知道:

是怎么移动的

是怎么吃东西的

吃到食物后节数怎么变化

如何通过键盘来实现蛇的移动


游戏实现

头文件的使用

#include<stdio.h>
#include<graphics.h>//图形库函数的头文件,下面的库函数是我们对背景、颜色、图形的生成等
#include<conio.h>//
#include<stdlib.h>
#include<windows.h>
#include<mmsystem.h>

对于这些头文件,下面使用包含其中的库函数时会讲到

 和食物以及控制方向的初始化

#define SNAKE_NUM 500 //蛇的最大节数
//蛇的移动方向
enum DIR
{
	UP,
	DOWN,
	LEFT,
	RIGHT,
};
//蛇的结构
struct Snake
{
	int size;//蛇的节数
	int dir;//蛇的方向
	int speed;//蛇的速度
	POINT coor[SNAKE_NUM];//坐标
}snake;
//食物结构
struct Food
{
	int x;
	int y;
	int r;//食物大小
	bool flag;//食物是否被吃
	DWORD color;//食物颜色
}food;
对于坐标的实现:

  选中POINT后转到定义查看

食物颜色的实现:

与查看坐标的实现方法是一样的,大家理解一下就行


游戏数据的初始化

//数据的初始化
void GameInit()
{
	//播放背景音乐
	mciSendString("open./res/mmm.mp3 alias BGM",
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学海无涯.苦作舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值