回合制战斗类游戏.doc

回合制战斗类游戏.doc

ID:52322491

大小:883.86 KB

页数:17页

时间:2020-03-26

回合制战斗类游戏.doc_第1页
回合制战斗类游戏.doc_第2页
回合制战斗类游戏.doc_第3页
回合制战斗类游戏.doc_第4页
回合制战斗类游戏.doc_第5页
资源描述:

《回合制战斗类游戏.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、回合制战斗类游戏一、程序功能与设计思路整体设计目标:含有游戏场景、游戏角色、动作控制、动画、交战(可选)、人工智能、音效(可选)等各部分内容。1.游戏实现功能说明:本次游戏是关于回合制战斗游戏的设计,游戏含有背景音效,玩家通过点击攻击命令图标对怪物发动攻击,程序响应后智能的选择攻击模式,计算对双方产生的伤害值,并显示对战消息,当其中的任何一方生命值为0时,游戏结束。游戏场景设计:贴天空、山峦、草地图,并实现其循环移动,对山峦进行透明处理。游戏角色设计:贴怪兽、玩家图,并进行透明效果处理,设定生命值。动作控制、交战:点击攻击命令图标玩家可以对怪物发动技能攻

2、击,同时怪物也可以选择相应的攻击方式。动画:怪物和玩家采用透明动画制作的技巧,对图案进行连续显示及图案本身背景的透明化处理。人工智能:在游戏中设定怪物有5种行为即利爪攻击、闪电链攻击、致命一击、使用梅肯斯姆回复生命值、逃跑,根据以上设计的怪物行为,利用“if-else”、“switch”语句,使计算机对角色进行事件情况判断,用来模拟怪物对战时的思考与行为的方式。音效:游戏的背景音效贯穿于整个游戏的始终。2.界面效果显示:1)游戏开始界面效果显示:-16-2)游戏进行界面效果显示:-16-3)游戏结束界面效果显示:贴天空图贴山峦图贴草地图贴怪物图贴玩家图1

3、.主界面设计思路(简单结构框图):贴背景图设置背景循环移动(天空、山峦、草地)贴攻击命令图标贴攻击效果图画显示对战消息和生命值贴游戏结束图画-16-一、相关原理知识介绍游戏流程:开始点击攻击命令图标显示贴图、播放背景音乐玩家发动攻击程序随机响应玩家角色攻击方式、AI怪物攻击与思考方式计算相应伤害值并进行生命值的加减显示攻击特效、对战消息游戏结束玩家生命值player.nHp>0&&怪物生命值monster.nHp>0YN1、贴图原理:位图是属于GDI的对象之一,在一套游戏开发过程中,常常需要运用大量的位图来构建游戏的所有画面。以游戏程序来说,由于使用的位

4、图数量相当多,因此都会先将位图存成文件,等到程序需要时再将文件加载到窗口中。将位图从文件中加载到绘制窗口中必须经过以下几个步骤。1)从文件加载位图(BITMAP)对象。2)建立一个与窗口DC兼容的内存DC。-16-3)内存DC使用步骤1)所建立的位图对象。4)将内存DC的内容粘贴到窗口DC中,完成显像的操作。BitBlt()函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。例如:BitBlt(hdc,50,50,350,250,mdc,200,100,SRCCOPY);这行程序表示,从来源DC(mdc)坐标点(2

5、00,100)的地方开始向右向下剪裁出宽350,高250的区域,并将其贴到目的DC(hdc)以坐标点(50,50)为原点的区域中。2、背景循环移动原理:循环背景是不断地进行背景图的裁切与结合,然后显示在窗口上所产生的一种背景画面循环滚动的效果。下面就介绍如何利用同一张跟窗口大小相同的背景天空图案来产生背景由左向右循环滚动的动画效果的。当背景在由左向右移动时,背景图右移的过程中,屏幕会出现“缝隙”,所以我们需要把移出屏幕的图贴到缝隙中来。这样子循环后,就可以看到在空中飞行的效果了。由上面的分析看出,我们的工作就是两次贴图:1)第一步,裁取原始背景图右边部分

6、进行贴图操作到另一个DC中,假设目前裁取的右边部分的宽度为x;2)第二步,裁取原始背景图左边部分惊醒贴图操作到另一DC中,完成了向右滚动接合后的新背景图;3)第三步,将接合后的背景图显示在窗口中,之后递增x值,进行循环操作。当x大于等于背景图后,就将x的值重设为0,继续重复循环。这样子就形成了背景循环效果。注意:循环背景的选图很重要,要力求看不出背景缝隙。3、技能攻击算法设计原理1.AI怪物攻击与思考方式设计假设怪物作战时具有如下几种行为:1)利爪攻击2)闪电链攻击3)致命一击-16-4)使用梅肯斯姆回复生命值(补血)5)逃跑那么我们可以根据以上设计的怪

7、物行为,设计以下一段算法,用来模拟怪物对战时的思考与行为的方式:if(monster.nHp>20)//生命值大于20{if(rand()%5!=1)//进行利爪攻击概率4/5monster.kind=0;else//进行闪电链攻击概率1/5monster.kind=1;}else//生命值小于20{switch(rand()%5){case0://利爪攻击monster.kind=0;break;case1://释放闪电链monster.kind=1;break;case2://致命一击monster.kind=2;break;case3://使用梅肯

8、斯姆回复monster.kind=3;break;case4://逃跑monst

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。