zoukankan      html  css  js  c++  java
  • 再战中原之菜单系统

          霸王大陆事实上也就是一个文字游戏,通过菜单操作各种指令。不过添加了一些简单的动画使得用户体验更加友好。所以霸王大陆的核心应该是由一套指令组成的文字游戏。
          菜单在程序开始的时候根据配置表生成视图,在不同的场合调用合适的菜单视图,因为这时已经不需要菜单的VO类对象,所以这里就不像城池、武将那样子设置数据表生成VO类,而是直接一个树形结构的xml配置文件。
    配置格式如下

    <root>
        <!--开始菜单-->
        <menu id="1">
            <txt show="单人游戏" cmd="11" dir="" col="" p_x="" p_y=""></txt>
            <txt show="读取进度" cmd="12" dir="" col="" p_x="" p_y=""></txt>        
        </menu>
        <!--选择城池功能-->
        <menu id="2">
            <img show="" cmd="" dir="" col="" p_x="" p_y="">
                <txt show="" cmd="" dir="" col="" p_x="" p_y=""></txt>
                <txt show="" cmd="" dir="" col="" p_x="" p_y=""></txt>
            </img>
            <txt show="" cmd="" dir="" col="" p_x="" p_y="">
                <txt show="" cmd="" dir="" col="" p_x="" p_y=""></txt>
                <txt show="" cmd="" dir="" col="" p_x="" p_y=""></txt>
            </txt>
        </menu>
    </root>

    menu标签是根菜单,按霸王大陆分为8个根菜单
     1、开始菜单
     2、难度选择菜单
     3、君主选择菜单
     4、城池功能菜单
     5、行军命令菜单
     6、阵型菜单
     7、单挑菜单
     8、战斗命令菜单(非树型指令菜单,特别处理)

    以下还有一些比较特别的菜单,用作选择指令的参数
     1、选择是/否
     2、选择城池(主界面城池/撤退城池)
     3、选择金和米的数量
     4、选择武将(城中武将/撤退武将)
     5、选择武器(根据城池配置动态生成)
     6、计谋(根据武将的知识动态生成)
     7、战术(根据武将的知识动态生成)

    前7个menu标签是根菜单,其子级是显示在游戏中的菜单,程序根据配置递归生成各个菜单后以父级的cmd为键保存到Dictionary中,切换菜单时通过cmd来获得其子级菜单。最外层树叶的cmd是操作指令,发给Controller处理。程序中还应该有一个操作队列,保存上一级菜单的cmd,以便返回。

    txt和img标签是同级的,txt表示用纯文本显示菜单,img表示图片菜单,show指示显示文本或图片路径,cmd在树枝上是表示其子菜单在Dictionary中的键,在叶子上表示将要执行的命令,dir表示光标指示的方向,col表示排列多少列,p_x表示水平间隔,p_y垂直间隔。

    “是/否”是以菜单外观出现的确认弹窗,让用户选择是否继续执行命令。
    点击时通过判断dic[id]==undefine来确定是展开下一级菜单还是执行命令。

  • 相关阅读:
    iOS优化内存方法推荐
    Swift和OC,是编译型语言、解释性语言、运行时语言
    redis常用命令
    redis 基本类型
    spring中事务配置
    redis 基本概览
    ThreadLocal 类说明
    spring 中 AOP 功能
    ps抠图简单方法
    nginx配置文件中location说明
  • 原文地址:https://www.cnblogs.com/wldragon/p/3407460.html
Copyright © 2011-2022 走看看