Skip to content

t5w0rd/GameDemo

Repository files navigation

GameDemo

曾经断断续续写了几年的类似war3的、暗黑风格的战斗引擎,今天抽空补个README纪念一下。
名字就是当初创建项目的名字。
感谢暴雪的《Warcraft III》地图编辑器给我带来的设计灵感。
底层渲染引擎为cocos2dx 3.x,另有Unity支持联机的版本移植工程进行中…

1.开发语言

  • C++
  • Lua

2.抽象

2.1.抽象树

抽象树(仅列举了部分核心元素)
├─单位
├─抛射物
│  ├─发射类型
│  │  ├─单位到单位
│  │  ├─单位到点
│  │  ├─点到单位
│  │  └─点到点
│  └─路径类型
│      ├─跟踪
│      ├─直行
│      └─连接
├─触发器
│  ├─血量变化时触发
│  ├─等级変化时触发
│  ├─每游戏刻触发
│  ├─复活时触发
│  ├─死亡时触发
│  ├─死亡后触发
│  ├─抛射物产生作用时触发
│  ├─抛射物抵达时触发
│  ├─攻击发出时被攻击者触发
│  ├─攻击命中后受害者触发
│  ├─攻击命中后攻击者触发
│  ├─攻击命中时受害者触发
│  ├─攻击抵达时受害者触发
│  ├─技能CD开始时触发
│  ├─技能CD结束时触发
│  ├─添加主动技能时触发
│  ├─删除主动技能时触发
│  ├─添加被动技能时触发
│  ├─删除被动技能时触发
│  ├─添加BUFF时触发
│  └─删除BUFF时触发
├─目标
│  ├─无目标
│  ├─单位目标
│  └─点目标
└─技能
    ├─主动技能
    │  ├─普通攻击
    │  ├─主动型BUFF附加器
    │  ├─召唤单位
    │  └─抛射物弹幕
    ├─被动技能
    │  ├─范围型BUFF附加器(光环)
    │  ├─普攻概率型释放主动技能
    │  ├─普攻概率型BUFF附加器
    │  ├─属性变化
    │  ├─显示HUD
    │  ├─吸血
    │  ├─溅射
    │  ├─连击
    │  ├─闪避
    │  └─重生
    └─BUFF
        ├─附加伤害(倍伤或固伤)
        ├─眩晕
        ├─变速
        ├─移动
        ├─HP变化
        ├─闪避
        ├─引起单位间传递
        ├─发射抛射物(施加者向拥有者发射)
        ├─反弹抛射物
        ├─时限生命
        ├─时限技能
        ├─冲刺跳跃
        └─瞬移至背后

2.2.抽象应用举例

  • Dota谜团大招技能黑洞
主动技能·召唤单位(
    单位(
        BUFF·时限生命 + BUFF·时限技能(
            被动技能·范围型BUFF附加器即光环(
                BUFF·眩晕 + BUFF·附加伤害 + BUFF·移动/*向BUFF施加者移动*/
            )
        )
    )
)
  • 野蛮冲撞
主动技能·主动型BUFF附加器(
    BUFF·变速/*移速大幅增加*/ + BUFF·时限技能(
        被动技能·范围型BUFF附加器即光环(  /*范围设置成约等于单位触碰半径,作用目标为敌军*/
            BUFF·眩晕
        )
    )
)
  • 操作型反弹抛射物(抛射物袭来时,抓准时机挥剑,将抛射物反弹给攻击者)
主动技能·主动型BUFF附加器(  /*技能释放动作设为挥剑;技能CD设为0.5秒*/
    BUFF·反弹抛射物
)
  • 攻击时有一定概率产生闪电链
被动技能·普攻概率型BUFF附加器(
    BUFF·引起单位间传递(
        BUFF·附加伤害 + BUFF·发射抛射物(
            抛射物(
                路径类型(单位到单位) + 发射类型(连接) + 模型(闪电)
                /*Dota月骑普攻弹射,只需要改为:路径类型(单位到单位) + 发射类型(跟踪) + 模型(与普攻抛射物相同)*/
            )
        )
    )
)

3.视频演示

About

MOBA Battle Engine

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published