博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XML 中可嵌入 cmd命令脚本
阅读量:5226 次
发布时间:2019-06-14

本文共 1124 字,大约阅读时间需要 3 分钟。

原文要参照代码 

1. XML解析

Task逻辑块可相互组合,形成复杂的树状结构,其结构用XML表示,即写成XML文件的形式。

样例如下:

<!-- 顺序执行块 -->

<seq>

    <!-- 循环执行块 -->

    <loop count="5">

        <!-- 脚本执行块 -->

        <cmd>

            var i = 0;

            game.nextStage();

        </cmd>

    </loop>

</seq>

为了便于设定上下文中的数据,XML 还支持<var>标签,用于在当前节点的上下文中声明一个新的变量,供本节点及其子节点访问和修改。

为了实现脚本的可重用性,防止单个脚本过于繁杂,XML中支持<script>标签来引用别的XML文件

在本游戏中,游戏角色的移动任务很普遍,所以XML支持<move>标签来快速实现一个角色移动任务。

游戏角色的逻辑特征往往包含多个方面,所以不是一个Task脚本可以定义的,因此多个上述XML脚本可以被置于<tasklist>标签中,从而形成一个完整的XML文本文件。

样例如下:

<!-- Task列表 -->

<tasklist>

    <!-- 一个Task的逻辑结构 -->

    <task name="task1">

        <!-- 脚本执行块 -->

        <cmd>

            var i = 0;

        </cmd>

    </task>

    

    <!-- 另一个Task的逻辑结构 -->

    <task name="task2">

        <!-- 脚本执行块 -->

        <cmd>

            var i = 0;

        </cmd>

    </task>

</tasklist>

 

 

 

1. Task逻辑块

a) Sequence:顺序执行块,其中包含的子逻辑块将顺序执行。

b) Parallel:并行执行块,其中包含的子逻辑块将并行执行。

c) IfElse:分支(选择)执行块,其中可包含一个或两个子逻辑块,并包含一个用于执行判断的表达式。

d) Loop:循环执行块,其中包含一个可循环若干次执行的逻辑块。

e) Wait:等待执行块,用于等待若干帧。

f) Script:脚本执行块,其中包含一段脚本,使用表达式解析模块进行执行。

g) Empty:空执行块。

由于游戏逻辑结构的需要,Task执行时,每次只执行一帧的内容,当一帧被消耗掉后,将中止执行,立即返回。而当Task被再次执行时,会从上次中断的地方继续运行。

在Java代码中,可以通过task.setBinding(name,value)来实现对每个Task中context数据的绑定。从而让叶子节点的脚本块能操作这些数据。

 

 

转载于:https://www.cnblogs.com/firecode/p/3599672.html

你可能感兴趣的文章
博物院与国宝
查看>>
「Unity」委托 将方法作为参数传递
查看>>
重置GNOME-TERMINAL
查看>>
redis哨兵集群、docker入门
查看>>
正则表达式2
查看>>
Unity3D_(插件)小地图自刷新制作Minimap小地图
查看>>
为什么分布式一定要有Redis?
查看>>
hihoCoder 1233 : Boxes(盒子)
查看>>
HihoCoder 1328 BFS 搜索
查看>>
Day2-h和p标签
查看>>
[回归分析][7]--定性预测变量
查看>>
团队的绩效评估计划
查看>>
纯css实现警示框页面(带关闭窗口按钮)
查看>>
django的views里面的request对象详解大全
查看>>
oracle中anyData数据类型的使用实例
查看>>
C++对vector里面的元素排序及取任意重叠区间
查看>>
蓝桥杯题——包子凑数
查看>>
软件测试——性能测试总结
查看>>
sky1301测试总结 just before chip comes back
查看>>
12.4站立会议
查看>>