欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    大学本科毕业设计毕业论文精选100基于Cocos2DX引擎的物理游戏.doc

    • 资源ID:2393552       资源大小:1.17MB        全文页数:39页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    大学本科毕业设计毕业论文精选100基于Cocos2DX引擎的物理游戏.doc

    咔嚓大学本科生毕业设计基于Cocos2D-X引擎的物理游戏Physical Game Based on Cocos2D-X Game Engine学生姓名XXX所在专业所在班级申请学位指导教师YYY职称副指导教师职称答辩时间咔嚓大学本科生毕业论文(设计)课题申请表(指导教师用表)(使用届别: 届) 课题情况课题名称课题来源科研项目(国家级省部级厅级市局级校级)生产或社会实际教学自拟*说明:课题类别论文 设计第几次立项1次 2次 3次难易程度较难适中简单工作量较大适中较小面向专业 学院 专业同一课题多名学生分工情况主要内容不同内容同参数不同分别做课题的不同部分指导教师姓名所在单位(部门)职称主要研究内容目标和要求指导小组审题意见学院 领导小组意见选题学生*注:1、“说明”栏填写毕业论文(设计)课题所来自的科研项目名称、或企事业单位名称或教学内容。2、此表一式三份,指导教师、选题学生、学院各存一份;咔嚓大学本科生毕业论文(设计)开题报告(学生用表)(使用届别: 届)毕业论文(设计)题目学号姓名学院专业指导教师所在单位、部门职称(1、内容包括:研究的目的和意义;国内外研究(设计)发展状况、发展水平与存在问题;研究(设计)主要内容、预期目标及拟解决的关键问题;研究(设计)方案与技术路线;研究(设计)方法;参考文献。2、撰写要求:字体为5号宋体字,字数不少于1500字。)工作计划进程表时 间工 作 内 容选题是否合适: 是 否方案是否可行: 是 否进程是否合理: 是 否任务能否完成: 能 不能指导教师(签字) 年 月 日选题是否合适: 是 否方案是否可行: 是 否进程是否合理: 是 否任务能否完成: 能 不能指导小组组长(签字) 年 月 日咔嚓大学本科生毕业论文(设计)中期报告(学生用表)(使用届别: 届)学号姓名学院专业论文(设计)题目简述开题以来所做的具体工作和取得的进展或成果存在的具体问题下一步工作具体设想与安排指导教师意见指导教师签名:年 月 日咔嚓大学本科生毕业论文(设计)答辩小组意见(答辩小组用表)(使用届别: 届)学号姓名学院专业毕业论文(设计)题目答辩时间答辩地点答辩提问录 记录员: 年 月 日答辩小组评语及成绩评定成绩(百分制): 答辩小组组长: 年 月 日教师对本科生毕业论文(设计)评语的主要评价方面及评价内容教师类别评价方面评价内容指导教师过程学生在论文(设计)过程中的治学态度、工作精神学生掌握基础理论和专业知识的扎实程度学生综合运用所学知识和专业技能分析和解决问题的能力研究方法的科学性;技术线路的可行性;设计方案的合理性毕业论文(设计)期间的出勤情况;中期报告的撰写情况论文(设计)质量论文(设计)的整体结构是否符合撰写规范?是否完成指定的论文(设计)任务(包括装订及附件)?论文(设计)水平论文(设计)的理论意义,对解决实际问题的意义论文的观念是否有新意?设计是否有创意?论文书、设计说明书所体现的整体水平评阅教师论文(设计)质量论文(设计)的整体结构是否符合撰写规范?是否完成指定的论文(设计)任务(包括装订及附件)?论文(设计)水平论文(设计)的理论意义,对解决实际问题的意义论文的观念是否有新意?设计是否有创意?论文书、设计说明书所体现的整体水平答辩小组答辩过程毕业论文(设计)的基本要点和见解的叙述情况对答辩问题的反应、理解、表达情况学生答辩过程中的精神状态论文(设计)质量论文(设计)的整体结构是否符合撰写规范?是否完成指定的论文(设计)任务(包括装订及附件)?论文(设计)水平论文(设计)的理论意义,对解决实际问题的意义论文的观念是否有新意?设计是否有创意?论文书、设计说明书所体现的整体水平注:不同的专业(方向)、不同的研究(设计)课题,根据其特点和侧重,教师评价的内容可进行必要的补充和相应的调整。咔嚓大学本科生毕业论文(设计)评阅教师意见(评阅教师用表)(使用届别: 届)学生学号姓名学院专业毕业论文(设计)题目评阅教师评语及评定成绩成绩(百分制): 评阅教师签名: 年 月 日咔嚓大学本科生毕业论文(设计)指导教师意见(指导教师用表)(使用届别: 届)学生学号姓名学院专业毕业论文(设计)题目指导教师评语及评定成绩成绩(百分制): 指导教师签名: 年 月 日咔嚓大学本科生毕业论文(设计)成绩评定表(学院答辩委员会用表)(使用届别: 届)学生学号姓名学院专业毕业论文(设计)题目成绩评定指导教师(X1)评阅教师(X2)答辩小组(X3)总评分数成绩( T )等级成绩学院答辩委员会审核意见答辩委员会主席签章: 年 月 日注:1、成绩评定一栏中,T= X1X2X3,X1=指导教师百分制成绩×25%;X2=评阅教师百分制成绩×25%; X3=答辩小组百分制成绩×50%。 2、等级成绩:总评分数成绩四舍五入取整之后,90分及以上为“优秀”、8089分为“良好”、7079分为“中等”、6069分为“及格”、59分以下为“不及格”。目 录设计总说明IINTRODUCTIONII1绪论11.1开发背景11.2国内外研究现状11.3游戏开发目的及意义11.4本课题所研究的内容22开发技术和相关理论简介32.1Cocos2D-X游戏引擎概述32.2Box2D物理引擎42.2.1Box2D引擎的概述42.2.2Box2D引擎的核心概念52.2.3行为树62.2.4行为树的节点介绍62.2.5行为树的特点72.3C+与Lua82.3.1C+的特点82.3.2Lua的特点83系统概要设计103.1设计思想103.2设计原则103.3系统开发工具选用103.3.1操作系统选用103.3.2开发语言选用103.3.3开发工具的使用103.4系统功能模块设计114游戏详细设计与实现124.1游戏设计特点124.1.1UI模块设计124.1.2三层结构设计124.1.3面向对象设计124.2通用模块实现124.2.1数据压缩124.2.2数据加载134.2.3内存管理134.2.4Lua调用C+144.3游戏的结构154.4难点与解决方法164.4.1物理世界的重构164.4.2Box2D与Cocos2D-X的同步164.4.3道具间的相互过滤174.5启动流程184.6多平台移植与多分辨率适配204.6.1多平台的移植204.6.2多分辨率的适配205自动测试216结论22鸣 谢23参考文献241 设计总说明要理解“物理游戏”,先要理解“反 物理”。例如超级马里奥,在空中跳起后还可以改变移动方向,这是违反物理规律的,就叫反物理;再例如忍者龙剑传,在跳到最高点后可以凌空再跳一 次,即所谓二段跳,这也是反物理的。而“物理游戏”则是严格按照物理规律移动,体现重力、引力、反作用力、加速度等物理特性的游戏。事实上,如果一个动作游戏的物理引擎过于真实,那么娱乐性是会大打折扣的。但是利用物理引擎制作的益智游戏,却因为手感真实,通关方法多变而越来越受玩家欢迎。本游戏采用基于Cocos2D-X开源游戏引擎和Box2D开源物理引擎,在Windows7操作系统平台下,使用Microsoft Visual Studio 2010开发工具进行开发。在技术实现上,采用基于C+和Lua脚本相结合,以实现基本的游戏逻辑流程,保证系统的高性能,提高本游戏的可维护性和可移植性。本游戏主要实现了以下四大功能:(1) Cocos2D-X与Box2D的整合 利用物理引擎是一个实现物理游戏行之有效的方法,加入了物理引擎,使得游戏里对于物理的模拟实现起来变得更简单和效果更好。同时,Box2D引擎作为Cocos2D-X引擎官方推荐的物理引擎,在使用上并不会出现引擎冲突的问题。(2) Lua与C+的交互因为C+运行前需要完成比较耗时的编译工作,在游戏里引入脚本,就可以更迅速地修改和调试游戏,而Lua脚本语言是一款高效的语言,并且可以很好地嵌入到C/C+。(3) 资源的加载游戏的资源,无论是游戏UI还是关卡设计,都是基于编辑器完成的。编辑器把编辑内容序列化后以XML的格式输出。在加载时,只需要把该XML文件完整合理地解析,就能在游戏中呈现与编辑器相同的内容。(4) 多平台的移植与多分辨率适配作为一款手机游戏,多平台移植与多分辨率适配是必不可少的。因为游戏需要根据不同的系统规范和准则而作出改变。而又因为市场上手机种类的繁多,分辨率亦多种多样,游戏也需要根据设备分辨率的大小而作出调整。关键词:物理游戏;Cocos2D-X;Box2D;Lua2 INTRODUCTIONBefore understanding the meaning of "physical game", the "anti-physical" should be comprehended first, for example, in the "Super Mario", after Mario jumping in the air; he could also change the direction of movement, which is contrary to the laws of physics, called anti-physical. In another example, "Ninja Gaiden", while he jump to the highest point, he could jump again immediately, which is the so-called double jump. This is also anti-physical. So, the "physical game" is moving strictly according to the law of physics, reflecting the gravity, reaction, acceleration, and other physical characteristics. In fact, if the physical engine of an action game is over realistic, the entertainment will be undermined. However, the puzzle games which adopt the physical engine are welcomed more and more by the players of their real touch and varied methods of clearance.This game is based on Cocos2D-X open source game engine and Box2D open source physics, operated under the Windows7 system platform, and developed by using the Microsoft Visual Studio 2010 development tools. On the technical implementation, combining C + + and Lua scripts is in order to achieve the basic logic processes of the game, to ensure high performance of the system, as well as to improve the maintainability and portability of the system.The game mainly has the following four functions:(1) To combine Cocos2D-X and Box2DUsing the physical engine is a proven method to achieve physical game. Joined the physical engine makes the game for physical simulation easier and the effect better. Meanwhile, Box2D, as the official recommended physical engine for Cocos2D-X, will not appear the engine conflict problem while in use.(2) To interact Lua and C+Because before the operation of C + +, it will take some time to complete the compilation. Introducing the script to a game can modify and debug it more quickly. While Lua scripting language is an efficient one, and can be well embedded into C / C + +.(3) To load resourcesGame resources, both in the game UI and level design, are based on the editor. After the editor has serialized the content, it will be output to XML format. When loading, it just needs to make the complete XML file parse reasonably, then it can appear the same in the game as the editor's content.(4) The transplantation of multi-platform and multiresolution adaptationAs a mobile phone game, multi-platform transplantation with multiresolution adaptation is necessary, because the game need to change according to the various system specifications and standards. For the reasons that the types of cell phone on the market are various, and the resolutions are also varied, the game needs to adjust to fit the size of the devices resolution.KEYWORDS: physical game; Cocos2D-X;Box2D;Lua基于Cocos2D-X引擎的物理游戏1 绪论1.1 开发背景手机游戏,在过去一段较长时间里,基本都是基于J2ME(Java 2 Micro Edition),但由于Java是一种编译成字节码后再解释执行的语言,所以在效率上远远比不上C/C+,而游戏却十分讲究效率,因为一旦效率低下,会直接影响玩家对游戏的体验,即便游戏做得再好再漂亮,没有一个良好的体验,也不能为玩家所接受。随着科技的发展,特别是近几年智能手机系统的兴起,J2ME逐渐退出舞台,取而代之的是针对各自主流手机系统的语言的兴起,例如IOS的Object-C,Android的Java和Windows Phone的C#,即使后者也是运行在虚拟机上的,但是厂商已经针对自身平台对它们作了特殊优化,所以效率上也远远超过J2ME,但在手机系统平台众多的今天,如果每一个游戏都用多种语言复写,这种时间和资源的代价是很高的。于是,C/C+的高效率和跨平台能力又一次得到体现。Cocos2D-X游戏引擎是一个支持多平台的2D手机游戏引擎,使用C+开发,基于Opengl ES,基于Cocos2D-iphone,支持WoPhone, iOS 4.1, Android 2.1 及更高版本, Windows XP & Windows 7,Windows Phone 8。1.2 国内外研究现状在智能手机上的游戏,无论是技术还是创意,国内可以说是完全跟着国外走。首先,在技术上,Cocos2D-X虽然是国人在维护,但追溯到Cocos2D-X起源,2008年出生于阿根廷的Ricardo Quesada用Python开发出Cocos2D,2010年Cocos2D的团队把Cocos2D移植到IOS平台,命名为Cocos2D-iphone,2011年,由国人领导的团队把Cocos2D-iphone用C+翻译,Cocos2D-X诞生,往后的一两年里,Cocos2D的其他分支陆续诞生,而Cocos2D-X因为强大的移植性得到广泛使用,现在无论在App Store还是Android的各个商城上,用Cocos2D-X开发的游戏也数不胜数。其次,在游戏创意上,物理游戏大多是偏向于益智类,如有名的愤怒的小鸟和割绳子等等,物理游戏最大特点是游戏世界里与现实世界相近,能使玩家更容易思考和了解生活中的物理现象,具有很好的教育性和趣味性。1.3 游戏开发目的及意义物理游戏有很多其他游戏不可比拟的优势。首先,它设定的世界和现实世界很接近,真实世界存在的很多属性,在游戏世界里都能一一重现,对幼龄玩家了解生活、了解物理很有帮助;其次,物理游戏里可以实现很多生活中难以接触,甚至是不存在的物体,这样可以使玩家的想象力和逻辑能力得到很好的锻炼。综上所述,物理游戏有着很好的教育意义。往日,一提及游戏,家长总会想到“沉迷”、“堕落”这些贬义词语,而娱乐又是生活中必不可少的东西,物理游戏正正可以为游戏正名,它是娱乐,但它又把教育和游戏相结合,可以在游戏过程中潜而默化地影响玩家,引起玩家的思考,激发起玩家学习的主观能动性。 1.4 本课题所研究的内容本课题主要研究基于Cocos2D-X引擎的物理游戏,它整合了Box2D物理引擎,使用C+语言配合Lua脚本共同开发,利用Box2D引擎对物理世界进行模拟,Cocos2D-X引擎进行呈现,C+语言实现游戏逻辑,而且利用Lua脚本来进行调度,方便调试和修改。在整个游戏开发中,首先对游戏的设计和需求进行了详细的考究,查阅大量的相关资料,并且借鉴了一些其他物理游戏的开发经验,最后提出设计方案。游戏UI和关卡的设计都是是基于一个可视化的编辑器,由编辑器导出资源,然后由Lua脚本控制导入,并且由C+语言进行解析;游戏包含了四大关卡和九种道具,道具都具有不同的物理特性和作用。九种道具及其作用如表1-1所示:表1-1 道具及其作用道具名称作用香蕉云竹蜻蜓空间门磁力猪气泡风扇花朵交换石改变物体的运动方向反弹物体携带物体向上飞行一段距离改变物体的位置吸附物体,并改变物体的运动方向让物体变成气球,有一定的上升力给予物体一定的外作用力让物体以一定速度及方向运动让男女主角交换位置2 开发技术和相关理论简介2.1 Cocos2D-X游戏引擎概述Cocos2D-X是一个开源的移动2D游戏框架,MIT许可证下发布的。这是一个C + +cocos2d-iPhone项目的版本。Cocos2D-X发展的重点是围绕cocos2d跨平台。即其实现一次编码,在各平台分别编译后即可运行,不需为跨平台修改大量代码,不需要在这一方面花费很多时间和人力,目前Cocos2D-X引擎已经支持以下平台:(1) IOS(2) Android(3) Windows XP / Windows 7(4) Meego(5) BlackBerry(6) Bada(7) Marmalade (原名airplay, 一个c+跨平台框架)其除跨平台外,相对其它的移动游戏引擎还有以下特点:(1) 易用性:易于学习掌握的API,大量示例代码和文档,有C+语言功底的新手只需画一个月就能上手完成简单游戏;(2) 高效性:使用OpenGL ES 1.1最佳方式进行渲染;(3) 灵活性:易于扩展,易于与其他开源库集成使用;(4) 活跃的社区:全球化的活跃论坛;(5) 成功商用:根据开源社区的保守统计,基于Cocos2d-x开发的游戏全球范围内已经突破一亿安装量。Cocos2D-X提供主要功能:(1) 非常容易低进行不同场景之间的流程控制管理;(2) 菜单维护简单;(3) 支持标签和html标签的文本渲染;(4) 快速而方便的精灵;(5) 按照你的想法指挥精灵变化,可组合的动作,包括移动、旋转和缩放;(6) 支持包括波浪、旋转和透镜等特效;(7) 支持矩形和六边形的瓦片地图(Tiled Maps);(8) 支持场景切换特效;(9) 支持粒子系统;(10) 支持硬件加速,即基于opengl es 1.1实现图形渲染系统;(11) 支持音效和背景音乐支持(CocosDenshion库);(12) 基础物理引擎Box2d和chipmunk;(13) 根据不同屏幕分辨率自动缩放适配;(14) Lua脚本支持。关于Cocos2D-X中的“X”,“X”有两意思,一个是表示“C+”,因为有时候,C+文件的后缀名可以用cxx代替,因此X便表示该开源项目使用C+编写,并且提供C+的API,二是表示“Cross”,该开源项目的目标是跨更多平台。目前支持的平台是在iPhone,Android的,WoPhone,Win32平台上,但可根据要求提供更多的平台。架构图如图2-1所示:图2-1 Cocos2D-X引擎架构图2.2 Box2D物理引擎2.2.1 Box2D引擎的概述 Box2D是一个用于模拟刚体运动的开源的C+引擎,它是由Erin Catto开发和使用zlib授权许可。Box2D的特点:(1) 连续碰撞检测(2) 接触回调:开始,结束,解决前,解决后(3) 凸多边形和圆(4) 单刚体多形状(5) 单次接触Manifolds(6) 动态树Broad-Phase(7) 高效配对管理(8) 碰撞分组及分类物理相关:(1) 持续时间下的物理求解器(2) 持续的刚体-刚体-接触图(3) Island的解决方案和睡眠管理(4) 接触,摩擦和恢复(5) 稳定堆叠下的线性时间求解器(6) 旋转、棱柱、距离、滑轮、齿轮、鼠标关节以及其他关节类型(7) 关节限制,发动机和摩擦(8) 动量解耦位置校正(9) 准确的反应力/脉冲系统相关:(1) 小数据块和堆栈分配器(2) 集中调整系数(3) 高移植性,但没有使用C+STL容器2.2.2 Box2D引擎的核心概念 Box2D物理引擎核心概念主要如下:(1) 形状(shape) 2D几何体对象,例如圆形或者多边形(2) 刚体(rigid body) 无比坚硬的物体,他们不管之间的距离有多么的接近,自身都是不会发生变化的。他们的坚硬程度就像钻石一样。在接下来的讨论中,我们将会把刚体统称为物体。(3) 定制器(fixture) 定制器定义了物体的形状以及物体的诸多性质,例如密度(density),摩擦系数(friction)以及恢复系数(restitution)。(4) 约束(constraint) 约束可以为物体自身移除相应自由度的物理状态关联。在2D中,一个物体包括了3个自由度(两个平移的坐标和一个旋转的坐标)。例如如果我们拿一个物体,用图钉将他订到墙上(就像钟摆一样)。此时这个物体只能绕图钉旋转,即约束为此物体移除了两个自由度。(5) 关联约束(contact constraint) 关联约束是一种特殊的约束,被设计用来防止不同刚体之间的碰撞交叉并模拟之间的摩擦和状态还原。此约束并不需要你去创建,Box2D会为你自动创建这些。(6) 连接器(joint) 用于固定两个或更多物体在一起的约束。Box2D支持几种类型的连接器:旋转,平移,距离等等。其中一些连接器可以设置限制和马达。(7) 限制连接器(joint limit) 限制连接器可以控制一个连接动作的活动范围。比如说人类的手肘仅仅可以绕一定范围的角度进行旋转。(8) 马达连接器(joint motor) 马达连接器可以在物体连接器所允许的自由度范围内对所要做的动作进行驱动。比如说你可以用马达连接器驱动手肘的旋转。(9) 世界(world) 一个物理世界是由物体,定制器以及相互之间的约束共同组成。Box2D支持创建多个世界,但一般情况下没必要或者说是不可取的。(10) 求解器(solver) 物理世界中有一个求解器用来推进时间并且解决物体之间的接触和连接限制。Box2D中的求解器是可以进行N次操作的高性能迭代求解器,其中N是连接限制的次数。(11) 持续碰撞(continuous collision) 在离散的时间步长中,求解器及时推进物体的状态。如果不加于干涉会导致隧道问题。2.2.3 行为树2.2.4 行为树的节点介绍行为树(Behavior Tree)只有四大类型的Node:(1) Composite Node(2) Decorator Node(3) Condition Node(4) Action Node任何Node被执行后,必须向其Parent Node报告执行结果:成功/失败 。这简单的 成功/失败 汇报原则被很巧妙地用于控制整棵树的决策方向。先看Composite Node,其实它按复合性质还可以细分为三种: Selector Node当执行本类型Node时,它将从begin到end迭代执行自己的Child Node: 如遇到一个Child Node执行后返回True,那停止迭代, 本Node向自己的Parent Node也返回True;否则所有Child Node都返回False,那本Node向自己的Parent Node返回False。 Sequence Node当执行本类型Node时,它将从begin到end迭代执行自己的Child Node:如遇到一个Child Node执行后返回False,那停止迭代,本Node向自己的Parent Node也返回False;否则所有Child Node都返回True, 那本Node向自己的Parent Node返回True。 Parallel Node 平行执行它的所有Child Node。而向Parent Node返回的值和Parallel Node所采取的具体策略相关:a. Parallel Selector Node: 一False则返回False,全True才返回True。 b. Parallel Sequence Node: 一True则返回True,全False才返回False。c. Parallel Fall On All Node: 所有False才返回False,否则返回True。d. Parallel Succeed On All Node: 所有True才返回True,否则返回False。e. Parallel Hybird Node: 指定数量的Child Node返回True或False后才决定结果。Parallel Node提供了平行的概念。不需要像Selector/Sequence那样预判哪个Child Node应摆前,哪个应摆后,常见情况是:a. 用于平行挂接多棵Action子树。b. 在Parallel Node下挂一棵子树,并挂上多个Condition Node,以提供实时性和性能。Parallel Node增加方便性的同时,也增加实现和维护复杂度。上面的Selector/Sequence准确来说是Liner Selector/Liner Sequence。 AI术语中称为strictly-order:按既定先后顺序迭代。Selector和Sequence可以进一步提供非线性迭代的加权随机变种。Weight Random Selector Node提供每次执行不同First True Child Node的功能。Weight Random Probability Node提供每次挑选唯一一个Node的功能。Weight Random Sequence Node则提供每次不同的迭代顺序。 AI术语中称为partial-order,能使AI避免总出现可预期的结果。再看Decorator Node,它的功能正如它的字面意思:它将它的Child Node执行后返回的结果值做额外处理后,再返回给它的Parent Node。然后是很直白的Condition Node,它仅当满足Condition时返回True。最后看Action Node,它完成具体的一次(或一个step)的行为,视需求返回值。而当行为需要分step/Node间进行时,可引入Blackboard进行简单数据交互。 整棵行为树中,只有Condition Node和Action Node才能成为Leaf Node,而也只有Leaf Node才是需要特别定制的Node;Composite Node和Decorator Node均用于控制行为树中的决策走向。(所以有些资料中也统称Condition Node和ActionNode为Behavior Node,而Composite Node和Decorator Node为Decider Node。)更强大的是可以加入Stimulus和Impulse,通过Precondition来判断masks开关。通过上述的各种Nodes几乎可以实现所有的决策控制:if, while, and, or, not, counter, time, random, weight random, util.2.2.5 行为树的特点行为树具有如下几种优点,确实是实现AI框架的利器,甚至是一种通用的可维护的复杂流程管理利器:(1) 静态性 越复杂的功能越需要简单的基础,否则最后连自己都玩不过来。静态是使用行为树需要非常着重的一个要点:即使系统需要某些"动态"性。 其实诸如Stimulus这类动态安插的Node看似强大,但却破坏了本来易于理解的静态性,弊大于利。 Halo3相对于Halo2对BT AI的一个改进就是去除Stimulus的动态性。取而代之的做法是使用Behavior Masks,Encounter Attitude,Inhibitions。原则就是保持全部Node静态,只是根据事件和环境来检查是否启用Node。静态性直接带来的好处就是整棵树的规划无需再运行时动态调整,为很多优化和预编辑都带来方便。(2) 直观性 行为树可以方便地把复杂的AI知识条目组织得非常直观。默认的Composite Node的从begin往end的Child Node迭代方式就像是处理一个预设优先策略队列,也非常符合人类的正常思考模式:先最优再次优。行为树编辑器对优秀的程序员来说也是唾手可得。(3) 复用性 各种Node,包括Leaf Node,可复用性都极高。实现NPC AI的个性区别甚至可以通过在一棵共用的行为树上不同的位置来安插Impulse来达到目的。当然,当NPC需要一个完全不同的大脑,比如70级大BOSS,与其绞尽脑汁在一棵公用BT安插Impulse,不如重头设计一棵专属BT。(4) 扩展性 虽然上述Node之间的组合和搭配使用几乎覆盖

    注意事项

    本文(大学本科毕业设计毕业论文精选100基于Cocos2DX引擎的物理游戏.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开