MarkDown测试
来源:互联网 发布:制造业大数据应用案例 编辑:程序博客网 时间:2024/05/16 10:05
注意:相关类的说明以及函数的注释请看具体代码
战斗逻辑控制
- 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)
- 战斗逻辑定义:
- 主要是处理战斗的开始,结束,等各种特殊条件。
- 这些条件判断都交给各自的逻辑管理类去处理
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
- MarkDown测试
- MarkDown测试
- 测试Markdown
- markdown测试
- 测试markdown
- 测试markdown
- MarkDown测试
- 测试 Markdown
- markdown测试
- 测试markdown
- 测试 Markdown
- 测试MarkDown
- 测试Markdown
- markdown测试
- [测试] markdown 写作测试
- 测试文章上报测试Markdown
- Markdown 代码测试!
- Markdown 代码测试
- [干货分享] 反省我十年开发犯过的错
- SVN分支与主干的合并
- 【JMedia】实地调研|不推荐购买碧桂园森林城市的N个理由
- Java实现扫码二维码登录
- 【微信小程序常识】wx.showToast消息显示框手机预览失败原因
- MarkDown测试
- 欢迎使用CSDN-markdown编辑器
- Python基础3Unicode编码+整数浮点数+布尔类型+list列表集合
- 测试Linux内核input事件——getevent源码
- 解决hibernate5不能自动生成表的问题
- Android FrameWork的概念
- java-算法-100以内的素数求法
- 特朗普“口中”的苹果,是“福”还是“祸”?
- 辗转相除法、埃拉托色尼筛选法、牛顿迭代法证明与C++实现