一、实验目的与要求

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

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

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

二、实验内容与方法

1.完成游戏编译(5)

成功编译并运行教材P200“游戏AI实例-迷宫寻宝”。

2.完成修改内容一 5分)

修改游戏代码,实现修改内容一,即修改窗口大小。

3.完成修改内容二 10分)

修改游戏代码,实现修改内容二,即增加DANGEROUS区域。

4.完成修改内容三 10分)

修改游戏代码,实现修改内容三,即增加按键监听。

5.完成修改内容四 10分)

修改游戏代码,实现修改内容四,即增加地图层次。

6.完成Bug修改(10分)

通过更改游戏代码的方式修复BUG,如:点击笑脸出现“No Way” 和“Found Treasure”的叠加。

7.添加配乐、音效(5分)

为游戏添加配乐、音效。

8. 游戏优化升级(5分)

自行发挥想象力,优化游戏功能。

9.完成实验报告 40分)

截图记录关键步骤,分析实验结果,撰写心得体会。

三、实验步骤与过程

1.完成游戏编译(5分)

成功编译并运行教材P200“游戏AI实例-迷宫寻宝”。

导入class和resources文件后编译运行。

2.完成修改内容一 (5分)

修改游戏代码,实现修改内容一,即修改窗口大小。

在AppDelegate.cpp中修改窗口大小

3.完成修改内容二 (10分)

修改游戏代码,实现修改内容二,即增加DANGEROUS区域。

修改地图,添加危险区域——石头

在aStar.h中添加节点的状态

在MazeScene.cpp中将石头设为危险区域

在路径数组的结构体中新增danger变量。

如果经过危险区域则中断搜索

输出危险的提示

运行代码,如图所示

4.完成修改内容三 (10分)

修改游戏代码,实现修改内容三,即增加按键监听。

在MazeScene.h添加函数声明

在MazeScene.cpp的init函数中添加监听

仿照屏幕触摸监听器编写函数

判断是否敲击R键,若敲击则创建新场景替换当前场景。

5.完成修改内容四 (10分)

修改游戏代码,实现修改内容四,即增加地图层次。

编辑新地图

设置楼层数变量来确定加载哪一张图

在路径中添加判断是否踩到传送锚点

若踩到传送锚点,则进行传送

6.完成Bug修改(10分)

通过更改游戏代码的方式修复BUG,如:点击笑脸出现“No Way” 和“Found Treasure”的叠加。

在禁止的判断条件中加上不允许点击笑脸图标位置即可。

7.添加配乐、音效(5分)

为游戏添加配乐、音效。

添加头文件和命名空间

添加背景音乐

添加成功找到路径音效

添加触碰危险区域和传送音效

8. 游戏优化升级(5分)

自行发挥想象力,优化游戏功能。

在运行中发现当成功寻宝后再经过危险区域不会提示dangerous,分析后发现危险区域的设定放在地图初始化函数时,再次运动时会被重置。因此,应该把危险区域的设定放在路径函数中。

四、实验结论或心得体会

通过此次实验,加深了对地图切换、A*算法、音效编辑和使用等cocos2d的内容的了解。

实验中也有遇到不少问题,比如音乐无法播放,不管怎么修改代码都不行。查阅资料后猜测可能是需要标准的mp3格式,而我的是通过修改flac文件后缀得来的,虽然电脑能播放,但难免说不定播放器自身优化过。下载标准mp3格式后,发现能正常播放了。

(by 归忆)

Logo

一站式 AI 云服务平台

更多推荐