C语言加EasyX实现简单贪吃蛇游戏
新建一个C++控制台应用,项目结构如下:
虽是C++,但实际是用C语言实现的,这是在VS2019装上EasyX库来实现的。
snake.h包含了用到的所有方法的定义
snake.cpp包含了所有方法的实现
snake.h代码如下:
#pragma once
#include <iostream>
#include<graphics.h>
#include<time.h>
#include<conio.h>
#include<vector>
using namespace std;
void initSnaker();//初始化🐍
void drawSnake();//画🐍
void moveSnaker();//移动🐍
void keyDown();//键盘事件
void initFood(int num);//初始化食物
void drawFood();//画食物
void eatFood();//吃食物
void showGrade();//显示分数
void showName();//显示名字
void clearGrade();//分数归零
bool gameOver();//判断是否挂掉
snake.cpp代码如下:
#include "snake.h"
//坐标
struct point
{
int x;
int y;
};
//🐍
struct snaker
{
vector<point> xy; // 每节坐标
point next; //下一节预留位置
vector<COLORREF> color;//每一节的颜色
int num;//长度
int position;//方向
}snaker;
//食物
struct Food
{
point fxy[10];//食物坐标
int grade;//分数
int num = 1;//食物总数
COLORREF color[10];//食物颜色
}food;
//蛇的方向
enum position
{
u,//上
d,//下
l,//左
r //右
};
//初始化🐍
void initSnaker()
{
snaker.xy.clear();//蛇坐标清除
point xy;
//初始化🐍坐标
xy.x = 20;//第一节
xy.y = 0;
snaker.xy.push_back(xy);//每节坐标
snaker.color.push_back(RGB(rand() % 256, rand() % 256, rand() % 256));//每节颜色
xy.x = 10;//第二节
xy.y = 0;
snaker.xy.push_back(xy);
snaker.color.push_back(RGB(rand() % 256, rand() % 256, rand() % 256));
xy.x = 0;//第三节
xy.y = 0;
snaker.xy.push_back(xy);
snaker.color.push_back(RGB(rand() % 256, rand() % 256