• UC-武器系统刀


    image

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

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

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

    image

    UCWeapon的BaseAction

    image

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

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

    image

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

    image

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

    image

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

    image

    刀的分析就结束了

  • 相关阅读:
    运行.bat批处理,CMD窗口隐藏,并制作为EXE文件
    TinyXML:一个优秀的C++ XML解析器(转载)
    2013编程之美资格赛【传话游戏】
    linux GTK教程(消息机制/标签/按钮/图像/文本/对话框/菜单/容器)
    c++强制类型转换(总结)
    string与char*的转换(转载)
    网络数据包捕获函数库Libpcap安装与使用(非常强大)
    Linux 高级Socket编程
    linux GTK 安装
    .dll和.lib文件的生成和使用 c++
  • 原文地址:https://www.cnblogs.com/BlankEye/p/4248300.html
Copyright © 2020-2023  润新知