学习5 游戏中的人工智能(迷宫寻宝)

说明:

<学习>系列所有的源代码均由《计算机游戏程序设计》提供。本人会在这些代码中融入自己的想法,对其进行迭代优化,旨在个人学习。

 

实现效果:

(因为雾效粒子太逼真导致gif动图随便一录就几十M,而博客里只能上传5m以下的图……费劲功夫减时长 减帧数 减质量才弄出一张……)

 

学习目标:

1. 理解A*寻路算法原理。

2. 进一步熟悉地图编辑器的使用。

3. 实现游戏中的人工智能。

主要修改内容:

1.修改窗口大小。

2增加“危险”区域,自动寻路过程中路过即死。

3.增加重新开始游戏功能。

4.增加自动生成地图功能,以实现“是男人就下100层”玩法。

三、实验步骤与过程

1.完成游戏编译

老套路编译运行游戏:

图 1

2.修改窗口大小

AppDelegate.cpp文件中修改自设窗口大小为1024*768,游戏窗口尺寸刚好。

图 2

再次运行游戏,成功容纳所有游戏内容:

图 3

 

3.增加“危险”区域

用TiledMap编辑原地图,进行些许改动并加上“墓碑”(ID为290),如下图红框内所示:

图 4

 

为实现以下功能:

  • 当玩家宝藏设置在“墓碑”处,或途径“墓碑”,屏幕中央提示“Dangerous!”信息
  • 当玩家到达“墓碑”处时,“笑脸”角色会停在“墓碑”处,屏幕中央“Dangerous!”改换显示为“Die!”,此时点击屏幕没有反应。
  • 如果“宝箱”刚好在“墓碑”处,则当“笑脸”角色到达时,“宝箱”也会消失,但是不会显示“Found Treasure!”。

下面介绍两种实现原理:

  • 算路径时就判断检测该路径上是否有“墓碑”,有则提示“Dangerous!”; 设置“墓碑”为精灵,在update函数中不断检验“笑脸”精灵是否和“墓碑”精灵相碰,相碰则通过用stopActionByTag等方法停止角色运动,判断为
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值