游戏人工智能实验报告一

游戏人工智能实验报告一

ID:30853749

大小:931.71 KB

页数:19页

时间:2019-01-04

游戏人工智能实验报告一_第1页
游戏人工智能实验报告一_第2页
游戏人工智能实验报告一_第3页
游戏人工智能实验报告一_第4页
游戏人工智能实验报告一_第5页
资源描述:

《游戏人工智能实验报告一》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验一追逐与拦截实验报告一、实验目的掌握游戏中追逐与拦截的人工智能算法二、实验仪器Windows7系统MicrosoftVisualStudio2015三、实验原理及过程//描述追逐与拦截的算法原理//描述程序实现时的思路包括对每个调用的API进行详细说明(1)描述追逐与拦截的算法原理:连续环境中的视线追逐是最简单的追逐算法,但是追逐者的移动不仅有线速度,而且还有角速度。算法思路就是:首先根据角速度把方向转到视线方向,然后向目标追过去。完整追逐/闪躲由三部分组成:首先,作出追或逃的决策判断。其次,开始追或逃(本章重点)最后,避开障碍物。拦截算法的基木原理是可以预测猎物未来的

2、位置,然后直接到那个位置去,让追击者和猎物同吋到达同一个位置。为了找岀追击者和猎物能同吋到达的点,不仅要考虑他们的移动方向,还要考虑他们的速度。(2)Main和winmnin进行函数的定义。RigidBody2D类:进行物体的质量,惯性,关系,坐标,长高宽即外形的定义,用向量表示他们移动的方向。UpdateSimulation函数对于物体1,2的移动进行反应和控制。DoCraft2Chase函数对于物体1,2追逐进行判断,DoCraft2Evade函数对于物体1,2躲避进行判断。DoCraft2InterceptAlt函数对于物体1,2拦截进行判断。DoAttractCra

3、ft2函数判断是否攻击。Ui□X■1AlCh2Demo:••FileOptions五、实验心得(需包括有何不足如何改进)我认为目前的追逐与拦截的不足之处在于:本次实验做的是连续环境中的视线追逐与拦截。相比砖块环境中的追逐与拦截,肯定是要灵活变通很多,但是箭头老要跑到屏幕外面去,这就非常尴尬了。猎物的速度向量和初始位置向量是固定的,而口靠拢时间的计算是需要相对位移和相对速度的,容易得到两者不相遇的尴尬情况。如何改进:计算采用靠拢时间的办法,此外,再想办法让箭头留在屏幕以内,这样视觉感受会比较好。六、主要代码main.cpp#include"main.h"#include"ti

4、me.h"//严Book:AlforGameDevelopersAuthors:DavidM.Bourg&GlennSeemannExample:Chasingandevadingincontinuousenvironments,Chapter2*/////GlobalVariables:intFrameCounter=0;RigidBody2DCraft1,Craft2;VectorTarget;#define#define#define#define#define_TIMESTEP0.001_TOLle-10_FWDTIME10_THRUSTFACTOR3_CHASES

5、ETUPtrueboolInitialize(void)Craftl.fMass=10;Craftl.flnertia=10;Craft1.flnertialnverse=1/10;Craftl.vPosition.x二_WINWIDTH-60;Craftl.vPosition.y=_WINHEIGHT*0・8;Craftl.fWidth=10;Craftl.fLength=20;Craftl.fHeight=5;Craftl.fOrientation=135;Craftl.CD.y=-0.12*Craft1.fLength;coordinatesofthebodycent

6、erofdragCraftl.CT.y=-0.50:

7、iCraftl.fLength;coordinatesofthepropellerthrustvectorCraftl.CPT.y=0.5*Craftl.fLength;//coordinatesoftheportbowthrusterCraftl.CST.y=0.5*Craftl.fLength;Craftl.CD.x=O.Of;//Craftl.CT.x=0.0f;//Craftl.CPT.x=・0.5*Craftl.lWidthCraftl.CST.x=0.5*Craftl.fWidth//coordinateso

8、fthestarboardbowthrusterCraft1.ProjectedArea=(Craftl.fLength+Craftl.fWidth)*Craftl.fHeight;Craftl.ThrustForce=_THRUSTFORCE*1;Craft2.fMass=10;Craft2.flnertia=10;Craft2.flnertialnverse=1/10;if(_CHASESETUP){Craft2.vPosition.x=40;Craft2.vPosition.y二_WINHEIGHT*0.8;

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

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

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