数据结构课程设计之GUI小程序

1.游戏名称

  生死时速(Speed

2.需求分析

1)生死时速分为四个级别,级别根据活得的分数划分,分数越高难度越大,最大难度为4。开始页面最高分可以查看历史最高分。

2)到达相应等级,障碍车辆数量增多,速度加快,右侧状态栏记录己方车辆生命、等级和分数。

3)状态栏下方是道具说明栏,共有三个道具,红心是加生命,翅膀是无敌,炸弹是把障碍车辆清屏,无敌状态持续一定时间。

4)三种道具按一定几率在车道上随机出现,己方车辆遇上道具,道具效果立即生效。

5)当己方车辆撞上障碍车辆,立即进入无敌状态。当生命值耗光,游戏结束,显示本次游戏成绩,破纪录则记录到最高分。

6)游戏开始后按回车键暂停游戏并返回游戏菜单,可选择开始新游戏或继续游戏。

7)应用图形界面,加入一些小图片更有趣味性。

3.开发平台及工具介绍

软件环境

操作系统: Windows 10

系统类型: 64位操作系统

应用软件:Visual Studio、EasyX 图形界面库

语言:C++

 

4.系统介绍

4.1总体介绍

游戏设置了一个speed.cpp源程序,一个data.txt文件储存游戏数据,以及一个包含游戏图像及音频的picture文件夹。

4.2文件介绍

(1)speed.cpp:主程序代码,其中包含基于EaxyX图形库的头文件graphics.hC++系统提供的头文件time.h等,以及main函数、play函数等游戏运行相关的函数。

(2)data.txt :用于存储游戏数据。第一行存储player状态,包括player坐标、得分、生命值、无敌时间等。2~8行存储环境状态,包括其他车辆及道具的位置等。

(3)picture文件夹:其中包含游戏运行所需的各种图片及音频文件,游戏运行时载入这些文件。

采用的数据结构

主要数据结构为队列,用链表实现。以队列模拟环境状态的其他车辆及道具等的进入与退出,用随机函数实现随机车辆位置及道具位置。

5.测试:  

游戏开始时界面

 数据结构课程设计之GUI小程序_第1张图片

游戏菜单界面

 数据结构课程设计之GUI小程序_第2张图片

单击新的游戏,过度动画,开始游戏,右侧状态栏和道具说明栏

 数据结构课程设计之GUI小程序_第3张图片

道具效果,依次为无敌,加生命,清屏

 数据结构课程设计之GUI小程序_第4张图片

数据结构课程设计之GUI小程序_第5张图片

数据结构课程设计之GUI小程序_第6张图片

生命值耗光,游戏结束,显示本次得分与历史最高分

 数据结构课程设计之GUI小程序_第7张图片

 6.代码片段

void displaycars()

{

PLAYER newcar;

for (int i = 0;i < 7;i++)

{

for (int j = 0;j < 9;j++)

{

newcar.x = 20 + i * 60;

newcar.y = 660 - j * 80;

if (queueAt(carqueue[i], j) == 1)

{

makeCar(newcar);

}

else if (queueAt(carqueue[i], j) == 2)

makeDaoju(newcar, 2);

else if (queueAt(carqueue[i], j) == 3)

makeDaoju(newcar, 3);

else if (queueAt(carqueue[i], j) == 4)

makeDaoju(newcar, 4);

}

}

}

void playgame()

{

cleardevice();

DWORD oldtime = 0;

//_getch();

while (1)

{

FlushBatchDraw();

DWORD newtime = GetTickCount();

if (player.wdtime != 0)

{

setbkcolor(BLACK);

isWhite = 0;

}

else

{

setbkcolor(WHITE);

isWhite = 1;

}

if (newtime - oldtime >= (unsigned int)(600 - 80 * g_grade))

{

score += 100;

if(player.wdtime!=0)

player.wdtime--;

if (score == 5000 || score == 10000 || score == 20000)

g_grade++;

oldtime = newtime;

updateQueue();

cleardevice();

DrawGameGUI();

displaycars();

makePlayer();

}

 

if (_kbhit())//如果有输入的话,改变方向.没有就方向不变

{

g_direction = _getch();

if (g_direction == 13)

{

storetext();

//_getch();

loadAndBegin();

}

else

moveOrder();//改变玩家的坐标

cleardevice();//清屏

DrawGameGUI();

displaycars();

makePlayer();

}

}

 

}

你可能感兴趣的:(数据结构课程设计之GUI小程序)