【深圳大学计算机游戏开发】实验3 二维游戏动画合成

本文介绍了通过Cocos2d-x进行二维游戏动画合成与交互开发的实验,包括CocoStudio的使用、游戏功能扩展如计分板和回合制、英雄Defend动作设计、bug修复及游戏优化,强调了实际操作和问题解决的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实验目的与要求

1.了解二维游戏动画合成原理。

2.熟悉Cocos2d-x中的用户交互、触摸事件、碰撞检测机制。

3.熟悉CocoStudio动画编辑器的使用,了解骨骼动画。

二、实验内容与方法

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

成功编译并运行教材P128“游戏动画实例-侠客行”。

2.增加计分板功能和回合制 10分)

记录成功/失败次数,增加计分板功能;将游戏改为回合制游戏。

3.增加英雄Defend动作 15分)

利用CocoStudio设计英雄Defend动作,并将此功能在游戏中加载。

4.修改游戏bug15分)

修改游戏中出现的明显bug。

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

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

6.完成实验报告 40分)

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

三、实验步骤与过程

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

成功编译并运行教材P128“游戏动画实例-侠客行”。

(1)在class文件下添加源代码

(2)在resource文件下添加资源文件

(3)编译运行代码

2.增加计分板功能和回合制 (10分)

记录成功/失败次数,增加计分板功能;将游戏改为回合制游戏。

(1)在AnimationScene.h中添加参数

(2)在AnimationScene.cpp中添加全局变量

(3)添加记分板,记录双方胜场数和当前回合数

(4)判断每回合的胜方并修改记分板

(5)修改游戏为回合制,获胜方式为——三局两胜制

(6)运行程序如下图所示

3.增加英雄Defend动作 15分)

利用CocoStudio设计英雄Defend动作,并将此功能在游戏中加载。

(1)设计defend动作

(2)导出项目并放入resource文件

(3)在config_set.h中添加DEFEND状态

(4)添加防御按钮

(5)绑定点击事件

(6)在Hero.h中添加防守状态

(7)设置防守时扣血效果

(8)添加防守状态的动画更新

(9)运行效果如下

4.修改游戏bug15分)

修改游戏中出现的明显bug。

【1】点击攻击按钮时,玩家和敌人会同时攻击

解决:在攻击按钮响应中删去敌人攻击部分

【2】玩家被攻击到后,会无法进行操作。

解决:删除Hero.cpp中对受伤判断的判定

【3】当玩家被攻击到时,并没有播放受到攻击的动画

解决:在Hero.cpp中添加播放受击动画

【4】敌人总是往左走,并停在左边边界

解决:在AIManger.cpp中调整两方向概率相等

【5】玩家和敌人攻击后的碰撞检测存在问题

解决:更改MyContactListener.cpp中的矩阵大小

【6】有时候一次攻击会造成非常多次伤害

观察:查看MyContactListener.cpp中的攻击受创部分,以玩家攻击敌人为例。

分析:这两个部分的原意是在进行一次攻击后将攻击状态设为flase避免重复扣血。然而,因为此时其状态state仍为ATTACK,所以update函数会又将攻击状态改为true。故而会出现重复扣血。

解决:先修改state为STAND后再修改攻击状态。

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

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

【1】玩家的攻击状态会被攻击按钮打断重置

解决:增加是否正在攻击判断,若正在攻击,则不响应攻击按钮

【2】对动画播放结束的判定存在问题

解决:在动画的最后一帧添加帧事件

【3】背景云动画衔接不连贯

解决:转为静态图

四、实验结论或心得体会

本次实验的游戏存在大量bug且文件数量众多,存在一定难度。通过此次实验,我学会了运用cocostudio动画编辑器进行动画编辑,以及通过运行游戏来找出bug不断修改,逐渐优化游戏。

(by 归忆)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

归忆_AC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值