MarkDown测试

来源:互联网 发布:制造业大数据应用案例 编辑:程序博客网 时间:2024/05/16 10:05

注意:相关类的说明以及函数的注释请看具体代码

Created with Raphaël 2.1.0张三张三李四李四嘿,小四儿, 写博客了没?李四愣了一下,说:忙得吐血,哪有时间写。

战斗逻辑控制

  • BattlePlayRTS
  • BattleRoleControl
  • BattleTools

- BattleLogicPVE

graph LRBattlePlayRTS-->A[BattleRoleControl]BattlePlayRTS-->panelbattleshowrts-战斗UIBattlePlayRTS-->BattleToolsBattlePlayRTS-->LogicClassLogicClass-->BattleLogicPVELogicClass-->BattleLogicPVPLogicClass-->BattleLogicPVEMoney

BattlePlayRTS

战斗播放管理

  • 控制战斗加载,退出
function BattlePlayRTS.InitBattle(aCallWinInfo,aCallLoseInfo,aCallWhenLoadShow,aMapID,aBattleType)  
  • 战斗逻辑定义:
    1. 主要是处理战斗的开始,结束,等各种特殊条件。
    2. 这些条件判断都交给各自的逻辑管理类去处理
function BattlePlayRTS.InitBattle(aCallWinInfo,aCallLoseInfo,aCallWhenLoadShow,aMapID,aBattleType)      -- 垃圾回收    ResFactory.DestroyUnusedResource();     --根据不同战斗类型 初始化战斗的逻辑控制    if aBattleType == nil then        aBattleType = BattlePlayRTS.BATTLE_PVE_ROUND;    end    if aBattleType == BattlePlayRTS.BATTLE_PVP_RACE then -- PVP竞技               BattleLogicClass = BattleLogicPVP;          elseif aBattleType == BattlePlayRTS.BATTLE_PVE_MONEY then -- 抢夺钱币               BattleLogicClass = BattleLogicPVEMoney;    elseif aBattleType == BattlePlayRTS.BATTLE_PVE_EXP then  -- 抢夺经验        BattleLogicClass = BattleLogicPVEExp;    elseif aBattleType == BattlePlayRTS.BATTLE_PVE_SWEEP then    -- 试炼副本        BattleLogicClass = BattleLogicPVESweep;     else            BattleLogicClass = BattleLogicPVE;              end     
  • 基本状态管理Update
function BattlePlayRTS.RunUpdate()

BattleRoleControl

3D角色战斗逻辑控制

graph LRBattleRoleControl-->ItemMainHeroShowBattleRoleControl-->BattleRoleStatusItemMainHeroShow-->C#MRoleMoveControlBattleRoleControl-->ControlLogicClassControlLogicClass-->BattleRoleControlSoldierControlLogicClass-->BattleRoleControlGeneralControlLogicClass-->BattleRoleControlBuildSoldierControlLogicClass-->更多扩展...

- 管理3D角色战斗中的Update

function BattleRoleControl.UpdateControlListLogic(...)
  • 各种状态切换,AI控制
  • LogicClass下面的分支就是针对各种角色进行状态的特殊控制。
-- 创建一个角色控制器function BattleRoleControl.CreatRoleControl(mRoleShowClass,aBattleRole,aControlList)    mRoleShowClass:HiddenEffectRoot(true); -- 隐藏角色特效    local mRoleControl;    local mRoleID = BattleRole.GetRoleID(aBattleRole);    if mdbfactory.IsSoldier(mRoleID) then -- 小兵        mRoleControl = BattleRoleControlSoldier.new(aBattleRole,mRoleShowClass);    elseif enemy.IsTreeEnemy(mRoleID) then -- 摇钱树        mRoleControl = BattleRoleControlTreeMoney.new(aBattleRole,mRoleShowClass);              elseif enemy.IsBuildSoldier(mRoleID) then -- 箭塔        mRoleControl = BattleRoleControlBuildSoldier.new(aBattleRole,mRoleShowClass);    elseif enemy.IsBuildBox(mRoleID) then -- 宝箱控制器          mRoleControl = BattleRoleControlRewardBox.new(aBattleRole,mRoleShowClass);          elseif enemy.IsBuildEnemy(mRoleID) then -- 障碍建筑        mRoleControl = BattleRoleControlBuild.new(aBattleRole,mRoleShowClass);              else        mRoleControl = BattleRoleControlGeneral.new(aBattleRole,mRoleShowClass);    end    table.insert(aControlList,mRoleControl);    return mRoleControl;end

BattleRoleStatus

角色控制器的状态管理,在这个类里面定义角色的状态和对应的函数处理定义。这里只是定义了一些通用的角色控制函数,如果特殊的状态控制需要参考,BattleRoleControlTreeMoney,来定义

BattleRoleStatus.STATUS_IDLE = 0; -- 休眠待机状态BattleRoleStatus.STATUS_MOVE = 1; -- 移动中BattleRoleStatus.STATUS_ATTACK = 2; -- 攻击中BattleRoleStatus.STATUS_DIZZ = 3; -- 眩晕BattleRoleStatus.STATUS_FIND_TARGET = 4; -- 寻找目标BattleRoleStatus.STATUS_SLEEP = 5; -- 休息待机BattleRoleStatus.STATUS_ATTACK_SLEEP = 6; -- 攻击等待间隔BattleRoleStatus.STATUS_DEAD = 7; -- 攻击等待间隔BattleRoleStatus.STATUS_SLEEP_BUFF = 8; -- 被BUFF休眠了local StatusFuc = {"StatusMove","StatusAttack","StatusDizz","StatusFindTarget","StatusSleep","StatusAttackSleep","StatusDead","StatusBuffSleep",};
  • 例如角色移动状态
  • 注意 StatusMove,这个函数名必须要和BattleRoleStatus里面StatusFuc定义的名字相同。
function BattleRoleControl.StatusMove(aControlClass)

BattleTools

战斗的数据管理类。

graph LRBattleTools-->BattleTeamBattleTeam-->BattleRoleBattleRole-->skill.lua-SkillInfoBattleRole-->BattleFormulaBattleRole-->BuffInfo
  • PVE战斗初始化
function BattleTools.InitRoundPVE(aLevelBaseInfo,aTeamKey)
0 0
原创粉丝点击