搜档网

当前位置:搜档网 > 【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

【Visual C++】游戏开发笔记十六讲解一个完整的回合制游戏demo

本系列文章由zhmxy555编写,转载请注明出处。

文章链接http://www.sodocs.net/doc/056233a1f524ccbff1218484.html/zhmxy555/article/det ails/74478624

作者:毛星云邮箱: happylifemxy@http://www.sodocs.net/doc/056233a1f524ccbff1218484.html

这节笔记的主要内容是介绍一个完整的回合制游戏demo,而这个demo里面主要突出了游戏里AI的各种思考与行为的方式.这样的通过计算机角色本身的判断思考,然后产生对应行为的AI称作行为型游戏AI。

如果对AI基础不太了解的朋友,请移步:

【Visual C++】游戏开发笔记十五游戏人工智能(一)运动型游戏AI

首先,我们来了解这种行为型AI的设计方法。

游戏程序中计算机角色的思考与行为,实际上是对各种不同事件进行分析思考,然后根据不同的情况作出相应的反应。但如何对发生的条件进行判断,并作出相应的反应呢?

对,我们可以利用“if-else”条件句以及“switch-case”语句这类的判断式来完成。

通常情况下,设计此类AI,会涉及到连串的条件判断句,简单数学运算,及一些数据结构的知识。

下面我们就来具体讲解这个demo涉及到的一些知识点:

一、AI怪物攻击与思考方式设计

例如今天我们要展示的这个回合制游戏demo里的AI,就有如下几种行为:

(1)利爪攻击

(2)闪电链攻击

(3)致命一击

(4)使用梅肯斯姆回复生命值

(5)逃跑

那么我们可以根据以上设计的怪物行为,设计以下一段算法,用来模拟怪物对战时的思考与行为的方式:[cpp]vie w plaincopyprint?

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

这段代码中,利用if-else判断式判断怪物生命值,然后怪物有4/5的几率释放普通的利爪攻击,有1/5的几率释放闪电链魔法攻击,当怪物重伤生命值小于20点时,也有一定的几率逃跑。

以上的利用“if-else”、“switch”语句,使计算机角色进行事件情况判断,然后写出相应的动作实现代码,这就是行为型游戏AI

设计的核心精神。

二,玩家角色攻击方式设计

然后我们再来设计一下玩家的攻击技能。

今天放出的这个demo里我给人物设定了两个技能,一个主动的普通攻击技能“无敌斩”,伤害计算公式为damage = rand()%10 + player.lv*player.w(player.lv为角色等级,player.w为攻击系数)。

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

而被动技能为可以有一定几率打出4倍暴击伤害的“恩赐解脱”,这个技能是Dota里面幻影刺客的大招(呵呵,浅墨玩dota时可是超级幻刺控~~)。

其实暴击的实现方式很简单,就是用if条件句进行概率的判断(浅墨在这里利用4==rand( )%5来设定暴击概率为20%),如果判断成功就将“倍率x普通攻击”作为damage的值。

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

(哈哈,浅墨专门找到了Dota里面这两个技能的图标以及用到了这个demo里面,具体效果图在下面)

下面贴出实现人物技能的代码:

[cpp]vie w plaincopyprint?

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

三、完整的回合制游戏源代码

基础部分就讲解完了,下面就贴出注释详细的,完整的回合制游戏demo的代码吧:

[cpp]vie w plaincopyprint?

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

每一回合开始的时候,我们点击画面上“无敌斩”的技能图标,就可以进行攻击,对怪物造成伤害,人品好的话,还可以触发强力被动技能“恩赐解脱”,对怪物造成4倍暴击伤害,这里我们设定的暴击概率为20%

浅墨在截图的时候,人品挺好的,恩赐解脱的暴击概率为20%,但是浅墨的4次攻击里,有3次都打出了“恩赐解脱”的暴击效果,直接果断地把这只小绵羊带走了,呵呵。

下面就是游戏运行的截图:

游戏开始

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

第一刀就出暴击了,48点伤害

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

运气不错,又一刀暴击,68点伤害

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

最后一刀又出了暴击,小绵羊被“秒杀”,游戏结束

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

我们还可以调节怪物等级,怪物攻击加权值,怪物血量上限以及玩家角色等级,玩家角色攻击加权值,玩家角色血量上限来让游戏更具挑战性。

当然,我们也可以增加更多的代码,来使怪物的思考与行动方式更具真实性和多样性,来使玩家的技能更加丰富。

这个回合制游戏demo可以说是目前市场上回合制游戏的本体,《仙剑奇侠传》(三代以前的,三代及以后的仙剑都是进度条模式了),《梦幻西游》《问道》等经典的回合制游戏,无非就是在这种风格的demo基础上,写更多的代码,丰富内容而已,或为游戏引擎的核心代码。

最后浅墨再提一点,以结束这篇笔记,其实就是为了给大家提供一些实现思路:

可以在这个demo的基础上,增加剧情,世界观,游戏地图,等级系统,经验值系统,宠物系统,道具系统,符文系统,五行相克系

统,天气系统等,让这个回合制游戏更加有趣更加吸引人。

而这些系统,我在以后的笔记里面会尽量全部涵盖进行讲解的,希望大家继续关注我的博客。

本节笔记到这里就结束了。

本节笔记的源代码请点击这里下载:【Visual C++】Note_Code_16

感谢一直支持【Visual C++】游戏开发笔记系列专栏的朋友们,也请大家继续关注我的专栏,我一有时间就会把自己的学习心得,觉得比较好的知识点写出来和大家一起分享。

精通游戏开发的路还很长很长,非常希望能和大家一起交流,共同学习,共同进步。

大家看过后觉得值得一看的话,可以顶一下这篇文章,你们的支持是我继续写下去的动力~

如果文章中有什么疏漏的地方,也请大家指正。也希望大家可以多留言来和我探讨编程相关的问题。

最后,谢谢你们一直的支持~~~

...游戏开发笔记十六 讲解一个完整的回合制游戏demo
【Visual C++】游戏开发 【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏 demo 本系列......
回合制游戏开题
题目名称: 回合制策略游戏的 AI 算法设计(中·英文)AI algorithm...
经典游戏制作教程
电脑游戏开发小组中的任何一个人(这个角色通常有策划...「玩回合制游戏像是自己当了个大将军(元首),运筹...(第二线)间的差异,并考量推出 DEMO 版及游戏完成......
(Visual C++)游戏开发笔记二十 游戏基础物理建模(二...
请到论坛讨论您的关注和建议是我们前行的参考和动力 分享到: 上一篇:(Vsa C+ iul +)游戏开发笔记十九 DrcX pnL iet与OeG的博弈 下一篇:(Vsa C+ iul +)......
回合制游戏战斗规则
1 概述 1.1 战斗 demo 概述包含了英雄入场、开始回合制战斗、杀死全部敌人,...游戏为横版,攻守双方分部在屏幕的左右两边,各自有一个 2*3 的方阵 在回合制......
VC++2010游戏开发随记之二十九
Visual C++】游戏开发笔记二十九 一步一步教你用优雅的 Direct3D11 代码画一个三角形这个 demo 演示的效果是用 Direct3D11 在屏幕上渲染一个三角形, 当然是......
Visual C++】游戏开发笔记二十一 游戏基础物理建模...
Visual C++】游戏开发笔记二十一 游戏基础物理建模(三) 摩擦力系统模...
回合制Flash游戏开发的通用框架
回合制 Flash 游戏开发的通用框架 肖刚 【期刊名称】《闽江学院学报》 【年(卷),期】2006(027)002 【摘要】以九子棋游戏的实现为例,提出一个适用于开发回合制......
如何完整的开发一款游戏?这些流程必须收好!
Demo 只要包含 最核心的玩法或者是最核心的游戏体验...亦或是在回合制游戏增加主 动手操、瞄准滑动等操作...性,所以只 能给每个阶段定一个大致目标和开发周期......
游戏制作的主要流程
1.游戏制作的主要流程 电脑游戏开发小组中的任何一...「玩回合制游戏像是自己当 了个大将军(元首),运筹...(第二线)间的差异,并考量推出DEMO 版及游戏完成的......
游戏文案笔记
游戏文案策划笔记 游戏本质,虚拟世界是否吸引人 故事具有起因,承接,含义,以及世界的构架,游戏也需要具有相同 的构架。 世界观, 规则以及系统是游戏的先决条件它们是......
回合制战略游戏的AI算法设计
回合制战略游戏的 AI 算法设计译自 Ed Welch《Designing AI Algorithms For Turn-Based Strategy Games》 在动作游戏里由电脑控制的对手总是有着先天的优势:完美的......
回合制网络游戏排行榜排行
进入 点评一下 24 通灵王 回合制 悠游数码 封测 (10-04-11) 106 《通灵王》是盛大游戏18创投基金旗下的3D回合制游戏,由深圳悠游历时3年开发而成。《... ......
《Unity移动游戏开发》读书笔记
《Unity 移动游戏开发》读书笔记适合初学者,讲解非常透彻。现在还是英文版《M...
回合制Flash游戏开发的通用框架
以“九子棋”游戏的实现为例,提出一个适用于开发回合制flash游戏的通用资源框架.将此框架作为基础源文件可以让开发者脱离繁琐的底层设计工作,而将注意力集中在游戏......
Unity3D游戏开发笔记2
Unity3D游戏开发笔记2_计算机软件及应用_IT/计算机_专业资料。比较完整的Unity3D开发实例教程,非常适合新手学习,代码有注释 泰课在线 2013.1.19 3.【......
Unity3D游戏开发笔记3
泰课在线()——国内首家 Unity3D 游戏开发免费...
回合制Flash游戏开发的通用框架
回合制 Flash 游戏开发的通用框架 肖刚 【摘要】以九子棋游戏的实现为例,提出一个适用于开发回合制 flash 游戏的通 用资源框架.将此框架作为基础源文件可以让开发......
回合制Flash游戏开发的通用框架
第 卷第期 巧年 闽江 学 院学 报 自然科 学版妞万 月 巧 回合制 游戏开发 的通 用框架肖刚 , 间江 学院物 理 学与 电子信息工 程 学系 福建 福州 ......