XML 中可嵌入 cmd命令脚本
原文要参照代码
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数据的绑定。从而让叶子节点的脚本块能操作这些数据。
XML 中可嵌入 cmd命令脚本的更多相关文章
- windows 中常用的 cmd 命令汇总
查看系统基本信息: cmd -> systeminfo 或 run -> dxdiag 查询主板出厂日期: cmd -> wmic bios get releasedate 关闭本地 ...
- Windows学习总结(10)——Windows系统中常用的CMD命令详解
1.ping命令 ping是电脑网络故障诊断中的常用的命令,它的作用是用来检查网络是否通畅或者网络连接速度.我们来看一下PING命令的具体表述. 日常的诊断过程中我们最常用到的就是诊断连接是否通畅. ...
- C#中winform窗体如何嵌入cmd命令窗口
解决方法一: 自己放一个文本框,改成黑色,然后输入命令,执行时,你Process.Start cmd ,此时CMD窗口不显示,然后,将CMD的返回值,再取出来,设回文本框. 如何用这种方法实时获取cm ...
- JAVA中ProcessBuilder执行cmd命令找不到路径的解决方法
今天遇到了一个很奇葩的问题,终于解决了,记一下,以做备忘. 前提条件:工程路径在D盘下 cmd要执行的可执行文件路径不在D盘下 然后...出事了............................ ...
- python中command执行shell命令脚本方法
在Python中有一个模块commands也很容易做到以上的效果.看一下三个函数:1). commands.getstatusoutput(cmd)用os.popen()执行命令cmd, 然后返回两个 ...
- 分享一篇Linux系统使用Tomcat服务时交互式修改server.xml中端口号的shell脚本
#!/bin/bash echo -e '\n' echo "***********************************" port1=`grep -r "s ...
- Dockerfile文件中的ENTRYPOINT,CMD命令跟k8s中command,args之间的关系
- Linux 下 expect 脚本语言中交互处理常用命令
Linux 下 expect 脚本语言中交互处理常用命令 1. #!/usr/bin/expect 告诉操作系统脚本里的代码使用那一个 shell 来执行.这里的 expect 其实和 Linux 下 ...
- CMD(命令提示符)命令大全及网络安全课程中所用到的命令
CMD命令大全详解: 1.arp -a 获得IP地址,MAC地址. 2.arp -d * 命令用于清空arp缓存表. 3.arp –s 网关IP 网关MAC 命令则是将网关IP地址与其相应的MAC地址 ...
随机推荐
- ubuntu 16.04如何生成ssh key以及如何查看ssh key
检查本地是否有SSH Key存在 在终端输入 ls -al ~/.ssh 如果输出的是: No such file or directory 那就没有ssh key 如果有就会出现这样: 生成新的SS ...
- [转载]为何 Emacs 和 Vim 被称为两大神器
Emacs 是神的编辑器,而 Vim 是编辑器之神.二者为何会有如此美誉,且听本文向你一一道来. 目 录 0. 序章:神器的传说 1. 无敌的可扩展性 1.1 可扩展性给了软件强大的生命 1.2 Em ...
- Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法
安装Oracle 11gR2,报错:[INS-06101] IP address of localhost could not be determined 出现这种错误是因为主机名和/etc/host ...
- win8中完成进度
public sealed partial class WorkItem : Page { private IAsyncAction _threadPoolWorkItem; private Manu ...
- WebService工作原理及传输安全问题
WebService是一种能够接收从Internet或者Intranet外其它系统发来的请求,是一种轻量级的独立通讯技术. XML(Extensible MarkUp Language)扩展型标记语言 ...
- 从零写Java Web框架——请求的处理DispatcherServlet
大概思路 继承 HttpServlet,实现 DispatcherServlet,拦截所有请求: DispatchServlet 重写 init()方法,负责初始化框架: 重写 service()方法 ...
- python入门-分类和回归各种初级算法
引自:http://www.cnblogs.com/taichu/p/5251332.html ########################### #说明: # 撰写本文的原因是,笔者在研究博文“ ...
- [开发笔记]-Linq to xml学习笔记
最近需要用到操作xml文档的方法,学习了一下linq to xml,特此记录. 测试代码: class Program { //参考: LINQ to XML 编程基础 - luckdv - 博客园 ...
- 搭建自己的挂Q平台
准备工作: 在前篇[分享]免费建立自己的站点里面介绍了怎么申请免费域名和空间. 在这里[随记]Q号解除限制一波三折有我被挂Q工具坑苦的经历. 在网上(出处不明了,下载的包太多,非CSDN)下载到的免费 ...
- 解决IDEA 中git 无法自动push 提交问题 Push failed: Failed with error: Could not read from remote repository.
Push failed: Failed with error: Could not read from remote repository.