码迷,mamicode.com
首页 > 其他好文 > 详细

UC-武器系统刀

时间:2015-01-25 16:27:25      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

这是UC武器系统的类结构图,我不会每一种武器都讲,只会分析刀及CharGun实现,因为其它都是类似的。

UCWeapon是武器系统的根类,它不会做具体的事情,它只有两种行为,一种是BaseAction,另一种是AltAction,要理解这两种Action,可以考虑枪。枪是一种既可以近战又可以远战的武器,射击就是BaseAction,用枪托砸人就是AltAction,这两种Action不可能同时出现,因此有

BaseActionInternal及AltActionInternal来控制,所以UCWeapon在Tick(Update)里就做一件事情,不断的检查玩家是否可以做出BaseAction及AltAction,

技术分享

UCWeapon的BaseAction

技术分享

首先检查能否执行武器的BaseAction,如果可以获取武器的骨架系统播放Montage动画,然后执行PrivateBaseAction,设置BaseAction的时间长度,这里就着重谈一下为什么要播放Montage,这时因为不同的武器行动的时候,它们的动画是不同的,刀攻击的时候得前进吧,枪攻击的时间得有一个枪口上仰的动画吧,但这些只有具体的子类才知道,UCWeapon是不会知道的

对UCWeapon了解之后,就可以分析简单的武器刀了,

技术分享

当玩家左键刀攻击时,父类UCWeapon播放了刀的动画,有趣的事情就发生了,UCWeaonKinfe本身是不知道玩家攻击了这种事情的,但有趣的是刀在每一帧的Tick事件里去检查了刀的攻击动画是否有播放,

技术分享

如果有播放就说明攻击了,那这把刀真的能伤人吗?未必,刀伤人与刀没有半毛钱的关系,

技术分享

对着刀的模型图,就能看出来是从刀柄到BlageTop发处一条线,如果有碰到什么东西就认为是攻击到了,如果碰撞到了东西,且这个东西能转换为Bot怪,就通知Bot怪,你被攻击了,关于AI的以后会再讲;如果转换Bot怪失败就认为是碰到了墙,就会给它一个力,及一些毁坏,如果它支持物理效果就会看出来了

技术分享

刀的分析就结束了

UC-武器系统刀

标签:

原文地址:http://www.cnblogs.com/BlankEye/p/4248300.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!