zoukankan      html  css  js  c++  java
  • 游戏开发九宫格战斗架构解析具体解释

    

    战斗部分总模块划分
    一。战斗单机版框架
    细分框架包括例如以下系统和技术点:
    1,地图循环系统;
    2。精灵系统(2方向4动作);
    1),精灵动作状态机,总精灵父类。玩家精灵子类。怪物精灵子类;
    2),动作组装器(帧动画封装)。
    3)。方向计算器(依据不同点位移计算精灵朝向)。
    4),效果动作组装器(移动,旋转,放大缩小,赛贝尔曲线等动作组装);
    5),精灵BUF,光环。状态控制器(精灵BUF状态,脚下光环,纹理状态控制);
    6)。精灵触摸区域。
    7),精灵血条控制器。

    3,特效系统;
    1),普通特效;
    2)。技能特效;

    2,精灵模型(Model层);
    3。侠客阵列;
    4,怪物阵列;

    5,九宫格精灵连线系统(9Role-Connection);
    1),九宫格连线系统(依据颜色同样补位连接算法);
    2),引导连接(黑线引导连接及取消连接的算法,还包括夹角计算,位移更新弧度等算法)。
    3),连接取消(已连接阵法按原路线取消已连接的算法)。
    4)。精灵阵法光环颜色(为精灵脚底加入颜色阵法)

    6,精灵普通攻击;
    1),精灵移动(动作)。
    2),普通攻击
    3),精灵攻击&怪物被攻击&技能攻击特效&抖动
    4),侠客精灵移动返回。怪物恢复站立。

    7。补阵系统(12个精灵的补阵条件:1,不反复,2,依照从左到右,再从上到下规律补阵)
    1),补移位算法(补数据模型model,补精灵视图view);
    2)。补齐后重置算法(重置当前序列TAG。注此处我是依据精灵坐标来重置当前阵法的序列);

    以上一个攻击循环+补阵就是一个能够循环跑起来的单机版战斗框架;

    二,战斗接模型正式数据后。普通攻击模块;
    1。关卡信息展示;

    2。地图切换,角色跑动等组合战斗场景特效;

    3。精灵模型数据正式化。
    0),玩家9个模型,好友/游侠(3个模型)。


    1),侠客攻击。血量,恢复;
    2),侠客属性(金木水火土,恢复);
    3)。怪物模型:攻击,血量。回合数。弱点属性。
    4),精灵血条控制器;

    4,侠客精灵普通攻击(细化)
    1),单个精灵攻击:
    侠客(移动。攻击。跑回)
    怪物(被攻击。攻击特效,数值特效。连击特效。恢复站立)
    2),多个精灵攻击。处理连招序列节奏;

    5,回合定时控制器;(处理每一个回合“玩家主动连线攻击一次/1回合”后检測当前战斗场景的回合状态。和全部精灵状态):
    1),视图检測;
    2),精灵检測。
    3),怪物死亡检測;

    6,怪物精灵攻击侠客:
    1),依据回合控制器检測怪物0回合时进行攻击。
    2),怪物攻击序列处理;
    3),单个怪物攻击序列处理:
    怪物随机选定攻击目标;
    怪物攻击状态;
    侠客精灵被攻击,被攻击特效,玩家扣血效果,扣血数值特效;
    精灵恢复常态;
    怪物攻击完更新回合数;

    7,精灵补阵时依据策划数值需求加入必中BUFF几率;

    8,玩家侠客总血量条(12个精灵血量之和)。

    9。怪物精灵死亡:
    1),死亡检測。
    2)。死亡特效;

    10,怪物攻击时,判定怪物技能的攻击侠客数目:
    1),攻击单个;
    2)。攻击多个;

    文章參考:www.yxkfw.com 游戏开发网,最好的编程开发技术站点。

    三。普通招式攻击模块

    1。数据模型侠客招式数据获取;

    1,侠客精灵怒气触发;

    2。侠客精灵怒气效果制作;

    3,在精灵普通攻击基础上重构招式攻击:
    1),精灵变红色。
    2),精灵位移;
    3),位移时制作残影效果。渐隐效果。
    5),假碰撞制作(节奏控制)。
    6),怪物被攻击效果,连击特效,数值连击特效(多次嘣数值)。怪物扣血效果;
    7)。侠客。怪物恢复

    4。侠客精灵普通攻击时按几率触发普通招式;

    四,九连击大招攻击模块
    1,9连构成条件

    2,9连攻击:
    1),先进行就连判定
    2),判定成功。前8位侠客精灵运行原有BUFF及攻击操作(涵盖普通招式,普通攻击)
    3),最后一位精灵为必杀技技能释放:
    屏幕放大,
    最后一位角色精灵超大CG闪现,
    最后一位精灵原地释放全屏大招。
    全屏怪物进行扣血操作。
    4)。全部精灵恢复

    五。怪物加护盾模块
    1,怪物普通攻击的同一时候添加护盾
    2,护盾添加条件查询
    3,怪物攻击加护盾:
    0),选定目标个数,随机选定目标;
    1)。镜头尾随怪物放大效果;
    2)。怪物原地攻击;
    3)。怪物播放技能招式;
    4),精灵侠客原地被攻击,玩家扣血效果。显示数字;
    5),查询怪物添加护盾数,护盾类型;
    6)。添加护盾
    4。破解护盾
    0),破解护盾条件。
    1),达成破解护盾的侠客攻击,将移除更新怪物护盾;
    2),怪物护盾更新。

    六,玩家死亡
    1,玩家死亡判定;
    2,死亡后弹出接关提示(是否接关?);
    3,不接关。显示退出战斗提示;
    4。接关,接关提示框消失,消耗复活石,进行接关:
    购买复活石弹框。使用复活石
    5,复活后,战斗回合为1。

    七,关卡信息保存
    1,打完每波怪物后进行地图切换
    2,切换时显示关卡进度信息,如(2/3波)。
    3,切换关卡是通讯server进行数据保存,告诉server这波的情况;

    八。战斗退出
    1,弹出战斗退出框;
    2。确定取消操作;
    3,显示战斗失败弹框;
    4,loading处理数据清理之后。进行相应跳转;

    九,战斗总结算(该关卡。全部波次打完,进行总结算)
    1。请求server,申请结算数据。
    2。给server发送该关卡信息;
    3,拿到server数据,解析;
    4,显示该关卡的掉落。掉落什么东西,更新本地数据;
    5,显示战斗胜利
    6,loading处理数据清理之后。进行相应跳转;

  • 相关阅读:
    ES6 语法详解(Promise对象(重点))
    ES6 语法详解(形参默认值)
    ES6 语法详解(三点运算符)
    ES6 语法详解(箭头函数(重点))
    ES6 语法详解(简化的对象写法)
    ES6 语法详解(模板字符串)
    ES6 语法详解(变量的解构赋值)
    [刷题] 走迷宫
    [bug] A reference cannot be reassigned, so it must be initialized at the member-initialization-list.
    [Qt] LibreCAD 源码分析
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8474355.html
Copyright © 2011-2022 走看看