小熊寻宝游戏设计课程设计报告毕业设计论文.docx
- 文档编号:281946
- 上传时间:2022-10-08
- 格式:DOCX
- 页数:22
- 大小:78.08KB
小熊寻宝游戏设计课程设计报告毕业设计论文.docx
《小熊寻宝游戏设计课程设计报告毕业设计论文.docx》由会员分享,可在线阅读,更多相关《小熊寻宝游戏设计课程设计报告毕业设计论文.docx(22页珍藏版)》请在冰豆网上搜索。
小熊寻宝游戏设计课程设计报告毕业设计论文
1、需求分析………………………………………………………………………3
1.1功能与数据需求…………………………………………………………3
1.1.1游戏规则
1.1.2基本功能
1.1.3拓展功能
1.2界面需求…………………………………………………………………4
1.2.1开始界面
1.2.2开始界面
1.2.3游戏界面
1.2.4碰上障碍的界面
1.2.5游戏结束的界面
1.3开发与运行环境需求……………………………………………………6
2、概要设计………………………………………………………………………6
2.1主要数据结构…………………………………………………………6
2.2程序总体结构…………………………………………………………7
3、详细设计………………………………………………………………………7
4、测试……………………………………………………………………………9
5、用户手册………………………………………………………………………10
6、总结提高………………………………………………………………………10
6.1课程设计总结……………………………………………………………10
6.2对本课程意见与建议……………………………………………………11
附录………………………………………………………………………………11
1需求分析
我要设计一个名为小熊寻宝的游戏,该游戏需要界面清晰,有明确的游戏指南,能在玩家开始游戏之后明白自己的游戏目标。
进入游戏之后能根据小熊经过的位置判断是宝石(三角形)还是生命值(圆形)又或者是障碍物(菱形),并根据具体物品作出分数,生命的加减。
并通过记录得分比较玩家的控制技巧和运气如何。
界面能足够吸引玩家进行游戏,各种数据要生动,明显。
1.1功能与数据需求
1.1.1游戏规则
小熊在能通过键盘控制在指定的游戏区域(8*8)移动,能消除经过的宝石,障碍物和生命。
初始生命值为5,分数为0。
在消除宝石的时候score加1;碰到障碍物和墙壁的时候HP减1;吃到生命的时候HP加1;在指定的时间内吃到的宝石越多,最后得分越高。
如果还有时间,但HP为0,则游戏失败。
玩家需要根据宝石出现的位置选择合适的路线,并适当利用障碍和生命的位置关系,在充分节约路径的情况下在同样的时间内得到更多的分数。
例如可以先碰上障碍,然后再吃生命加回HP,如果这样能在短时间内吃到更多的宝石的话。
当然,运气还是占游戏得分很大的成分。
看玩家的人品如何吧,嘻嘻。
。
1.1.2基本功能
可以通过键盘上的方向键控制小熊的行走方向,小熊能从原位置移动到下一位置。
在吃到宝石的时候得分scores+2,在碰到障碍物的时候得分scores-1、生命HP减一格;在吃到生命值的时候生命HP+1;碰到墙壁HP-1。
宝石是随机产生的,出现位置与数量是根据编写的时候随机情况的概率影响的。
不会出现同一个位置出现两种宝石的情况。
游戏有一定的时间,在时间条到达底部的时候,游戏结束。
1.1.3拓展功能
游戏界面清新鲜艳;
可以通过按暂停键“ENTER”来使小熊和时间条停止继续运行。
按“ESC”键使游戏结束。
1.2界面需求
1.2.1开始界面:
游戏内物品的说明,翻译为中文如下:
说明:
在这个游戏里,你可以通过按键盘方向键来控制小熊的移动。
当得到一个三角形的时候,分数加2。
但是当撞到墙上或者障碍物菱形的时候,你会失去HP值。
你有六次的机会去犯错误,当HP变为0的时候,游戏结束。
1.2.3游戏界面:
左上角的同心圆是小熊,生命值和时间条分别是hp和time。
分数显示在score下面的矩形里面。
右下角有控制说明。
1.2.4碰上障碍的界面:
当小熊吃到菱形时,HP减一格,分数减一。
撞到墙上的时候,HP减一格。
1.2.5游戏结束的界面:
1.3开发与运行环境需求
模拟DOS下的tc3.0开发的。
运行环境Windows98及以上。
但只能在模拟器上运行。
2概要设计
2.1主要数据结构
主要结构体是:
typedefstruct{
intxiongx;
intxiongy;
inthp;
}BEAR;
这是小熊的信息,包括熊的横纵坐标,熊的生命值;
主要的数组是:
a[8][8],
a[m][n]中m代表的是游戏区域每个格子的列数,n代表的是格子的行数。
在随机出物体时,判断物体与熊的位置是否一致时,可以起到坐标的作用。
2.2程序总体结构
voidbegin();
程序开始前的画面,显示游戏说明,物体的类型及基本规则。
voidboard(inta[8][8]);
该函数是画背景图的函数,里面还含有把初始物体位置画出来的随机函数。
voidoutscore();
这是在分数框显示分数的函数。
voidEND();
含有清屏函数再加上显示“--END--”字样。
main()
里面包含了对以上函数的调用;初始化小熊(画两个同心圆,内圈上红色,外圈上黄色);以bear.hp>0作为条件设定一个while循环,出循环则游戏结束;再以游戏区域为条件在上一个循环里面设置一个while循环,循环结束熊掉血;在游戏区域的循环包含对熊位置的判断,随机产生新的物体但不重叠,分数与宝石的联系,键盘响应,HP的变化等。
3详细设计
Main()主流程:
初始化小熊是把小熊在(1,1)格子处画出来。
键盘响应利用的是boiskey函数,判断输入的是什么ASC码,并用switch语句进行操作。
定义了dx和dy两个参数,当dx为1,则熊向右走一格,-1则左;dy=-1.则向上走一格,dy=1则向下。
物体响应是定义一个新的坐标new_loc_x和new_loc_y,把开始初始化宝石的坐标赋给新地址。
然后用while函数进行新的空位置的查找,把找到的空位子赋原来那个位置的值,再根据具体的值进行判断该出什么物体。
判断HP值利用了一个参数bear.hp。
当熊的坐标超出游戏区域的时候,hp--,当熊的坐标与菱形的坐标一样的时候,hp--。
当熊的坐标与圆形的坐标一致的时候,hp++。
再在hp操作之后画HP图。
HP是用一个矩形条表示的,红色区域代表HP值的多少,黑色区域代表失去的HP值。
当HP大于6时,则HP=6,以此来控制小熊的生命值不会无限增加。
当HP=0的时候,红色矩形消失,显示游戏结束界面。
判断分数:
初始score为零。
当小熊的坐标与三角形的坐标一致时,score=score+2,当小熊的坐标与菱形的坐标一致时,score=score-1。
Begin();
设置底色是黑色,在指定位置显示白色3号字体的文字。
文字内容为游戏的名称和说明。
Board();
先将游戏界面用线和框画出来;在随机出宝石那块使用了一个for循环,对每个格子进行定义赋值,并对赋1,2,3的(m,n)格画上一个三角形,赋4,5,6的格子画菱形,赋7的画圆。
Outscore();
在分数区域用文本形式显示得分。
END();
清屏后设黑色为底色,在屏幕中间显示“--end--”。
4测试
小熊移动之后会把原来位置的格子涂黑,由于游戏界面是绿色的,这样造成了界面的不美观。
所以在熊移动之后,再在原来的位置涂上绿色。
当熊的坐标与物体坐标一致的时候,需要除掉原来的物体,再在空位置产生新的物体。
开始的时候并没有把物体消除,后来采用涂上一层新的底色的办法解决了问题。
还有就是产生新的物体的坐标需要随机产生,通过定义一个新的地址代码来保存新地址,解决了不能产生新地址的问题。
在小熊经过游戏边界的时候,原本为了遮住熊经过路径的涂色语句却把游戏区域外面也涂色了,因此,把涂色点改到合适的大小,使其不会涂到外面的区域。
在判断熊的HP的时候,开始是用的switch语句,即case“数字HP”,并对响应的数字进行画HP条。
后来把画图的高度换成了有bear.hp作参数的,这样就减少了好多函数。
5用户手册
此程序为小熊寻宝的c语言小游戏,通过键盘上的方向键控制熊的移动。
请阅读游戏开始界面的游戏规则和物体简介。
此编译文件是在TC3.0上编译的,所以头函数和库都是TC3.0上支持的,若您使用的是其他编译器,可能需要进行相应的改动。
启动方法:
先打开tc3.0,再运行xiong.cpp文件。
按住Ctrl+F9即可进入游戏。
6总结提高
6.1课程设计总结
在这次的课设制作中,我明白了C语言的作用和趣味。
C语言是一个工具,熟练并且有效地利用它,我们就可以编译出我们想要的程序,可以画图,可以玩游戏,可以制作各种小软件。
说实话,小熊寻宝的题材不是一个很有趣的游戏。
但是,我们可以用我们自己的智慧,往游戏里添加各种各样的东西,可以把它做得很出色,做得很有创意,把它变成一个不乏智慧与灵感的作品。
只要我们有想法,我们就可以去做,可以用程序去实现它。
这便是计算机的魅力吧。
在编译游戏的过程中,我遇到过好多难题,有的想了好久,改了好多次都还是弄不出来。
在最后这几天,每把程序改一次,我就将程序名的数字+1,虽然只有两三天的时间,但是我的程序已经从1加到70多了。
呵呵,只能说每个作品都是改出来的,越改程序便越完善。
做完课设,我想我已经算是一名编程人员了吧。
虽然课设其实很简单,但我还是有点开心。
需要学的东西是无穷无尽的,我该学会在飞速发展的时代不断学习,不断进步。
这样才能做出更好的程序。
6.2对本课程意见与建议
希望能多锻炼我们,给我们指引,我们需要学习更多新的技能,掌握更多的知识。
附录:
#include
#include
#include
#include
#include
#include
#defineENTER0x0d
#defineLEFT0x4b00
#defineRIGHT0x4d00
#defineUP0x4800
#defineDOWN0x5000
#defineESC27
voidbegin();
voidboard(inta[8][8]);
voidoutscore();
voidEND();
typedefstruct{
intxiongx;
intxiongy;
inthp;
}BEAR;
intbx=45,by=35;
intdx=0,dy=0,t=0;
intscore;
intm=0,n=0,k=0;
intall_key(void);
intkeycode;
main()
{
intdriver,mode;
charch[2];
driver=DETECT;
mode=0;
initgraph(&driver,&mode,"..\\bgi");
begin();
inta[8][8];
board(a);
BEARbear;
bear.hp=6;
bear.xiongx=45;
bear.xiongy=35;
setcolor(6);
while(bear.hp>0)
{
while(bear.xiongx+dx*60<500&&bear.xiongx+dx*60>40&&bear.xiongy+dy*50>20&&bear.xiongy+dy*50<400&&t<192)
{
setcolor(WHITE);
bear.xiongx=bear.xiongx+dx*60;
b
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小熊 寻宝 游戏 设计 课程设计 报告 毕业设计 论文