贪吃蛇游戏开发文档最终

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

贪吃蛇游戏开发文档

本文档为稻草人于暑假开发C语言版本之链表学习的贪吃蛇游戏文档!

一:游戏分为两个大模块:

一:界面开发(UI):

1:菜单界面;

2:游戏界面;

3:积分板块;

二:游戏开发:

1:界面的控制;

2 : 成长的规则;(1300升中级,2500升高级)

3:碰撞检测

//本游戏采用全局使用键盘控制,以及使用了多线程,所以使用了WINDOWS API函数,//运行系统:Windos/7/8/10/XP

二:本项目所用到的头文件:

1:库头文件:

#include

#include

#include

#include

2:自写头文件:

#include"tools.h"

#include"Snake.h"

三:头文件介绍:

Snake.h头文件为:游戏的核心文件,里面包含了游戏界面的绘制函数,游戏的成长机制,游戏的碰撞检测等。

Snake.h;

typedef struct Snaked{

int x;

int y;

//蛇身体的坐标

char Content[3];

Snaked *pNext;//指向下一个结构体

Snaked *pHead;//指向上一个结构体

}Snakedd;//定义蛇身体的结构体

void GameWord(void);//绘制游戏界面

void ConsoleControl(void);//控制台显示格式控制

void MenuControl(void);//菜单控制中心

Snakedd *ProduceSnake(int iCnt); //产生蛇的身体,iCnt代表的是蛇的身体有几节。

void PrintList(Snakedd *pHead);//打印出链表(蛇身)

void DeleteList(Snakedd *pHead);//销毁链表

void RandomCoordinate();//产生一个随机坐标,并且打印出食物

//多线程函数:

DWORD WINAPI MobileSnake(LPVOID lpChandle); //移动蛇(未实现)DWORD WINAPI KeyboardControl(LPVOID lpChandle);//键盘控制。DWORD WINAPI LostGameTime(LPVOID lpChandle);//已经用去的时间

//后续函数占位:

Tools.h头文件为:辅助头文件,它里面包含了对控制台的一些控制

Tools.h:

void HideCursor(bool Switch);//光标显示与隐藏函数;true;显示光

标;false:隐藏光标

void gotoxy(int x,int y);

void Block(int x,int y,int Wide,int Hight);//绘制方框函数 x,y代表方框起始的左上角坐标;Wide:输出方框的长; Hight:输出方框的高

int Menu(char* MenuTxt[],int Lenght,int Wide,int Hight,int x,int y);//菜单选项绘制; MenuTxt:代表要绘制出的菜单选项; Lenght:代表选项的总项目数;x,y代表方框起始的左上角坐标;Wide:输出方框的长; Hight:输出方框的高;返回值;-1 代表左键 ;其他值代表右键

四:函数的实现:

Tools.h头文件:

**********************第一次完成函数:*************************** ***********************void HideCursor(bool Switch);************* void HideCursor(bool Switch)

{

int iCnt=0;

if(Switch==true)

iCnt=1;

else

iCnt=0;

CONSOLE_CURSOR_INFO cursor_info = {1, iCnt};

SetConsoleCursorInfo(

GetStdHandle(STD_OUTPUT_HANDLE),

&cursor_info);

}

*********************************END******************************

***********************void gotoxy(int x,int y)******************* void gotoxy(int x,int y)

{

COORD xy;//光标的位置

HANDLE hHand;//句柄变量

hHand=GetStdHandle(STD_OUTPUT_HANDLE);//获取输出的句柄

xy.X=x;

xy.Y=y;

SetConsoleCursorPosition(hHand,xy);//设置控制台光标的位置

}

*********************************END******************************

**********void Block(int x,int y,int Wide,int Hight)************** void Block(int x,int y,int Wide,int Hight) {

int i=0;//上边框

gotoxy(x,y);

printf("┏");

for(i=0;i

{

printf("━");

}

printf("┓");

//下边框

gotoxy(x,y+Hight-1);

printf("┗");

相关文档
最新文档