第六章第二节Lua脚本框架
Posted iLoboke
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第六章第二节Lua脚本框架相关的知识,希望对你有一定的参考价值。
足球机器人控制编程的lua脚本框架
lua战术框架:
gPlayTable.CreatePlay{ --红色部分为战术框架主结构
firstState = "",
[] = { --紫色部分为状态框架
switch = function() --蓝色部分为状态跳转函数
if ... then
return ...
end,
Role = task --绿色部分为角色、任务分配
},
[] = {
switch = function()
if ... then
return ...
end,
Role = task
},
[] = {
switch = function()
if ... then
return ..
end,
Role = task
},
name = "" --此处为脚本名
}
lua_scripts脚本框架结构说明
在《机器人控制软件》中,我们已经了解了lua策略脚本库(lua_scripts)结构。现在,就让我们一起来对整个脚本库做一个详细的解析,掌握具体每一个lua脚本的工作。
>>\lua_scripts\(脚本库)
进入到lua_scripts,我们首先看到的是如下图的文件:
Config.lua:lua战术角色和skill技能的配置文件;
Play.lua:lua战术脚本的状态解析,在这里可以看到“finish”和“exit”状态;
PlayBot.lua:lua战术脚本框架的接口,在PlayBot-SSL.exe程序中会直接调用它,是所有lua脚本的总入口;
SelectPlay.lua:lua战术脚本的调度控制,根据裁判软件的按钮指令,调用各种战术脚本;
Skill.lua:从Config.lua中解析各种skill技能表,并生成gSkillTable表字段;
>>\lua_scripts\oppoent\
Other.lua:可以理解为战术包,里面配置了所有战术对应的战术文件;
>>\lua_scripts\play\Nor\
NormalPlayDefend.lua:执行正常比赛(normal)的战术脚本程序;
>>\lua_scripts\play\Ref\BackDef\
BackDef.lua:后场任意球防守战术的调度脚本,如果只有一个战术脚本,就不需要设置;
Ref_BackDef.lua:后场任意球防守战术脚本;
>>\lua_scripts\play\Ref\BackKick\
BackKick.lua:后场任意球战术的调度脚本,如果只有一个战术脚本,就不需要设置;
Ref_BaakKick.lua:后场任意球战术脚本;
>>\lua_scripts\play\Ref\CornerDef\
CornerDef.lua:角球防守战术的调度脚本,如果只有一个战术脚本,就不需要设置;
Ref_CornerDef.lua:角球防守战术脚本;
>>\lua_scripts\play\Ref\CornerKick\
CornerKick.lua:角球任意球战术的调度脚本,如果只有一个战术脚本,就不需要设置;
Ref_CornerKick.lua:角球任意球战术脚本;
>>\lua_scripts\play\Ref\FrontDef\
FrontDef.lua:前场任意球防守战术的调度脚本,如果只有一个战术脚本,就不需要设置;
Ref_FrontDef.lua:前场任意球防守战术脚本;
>>\lua_scripts\play\Ref\FrontKick\
FrontKick.lua:前场任意球战术的调度脚本,如果只有一个战术脚本,就不需要设置;
Ref_ForntKick.lua:前场任意球战术脚本;
>>\lua_scripts\play\Ref\GameStop\
Ref_Stop.lua:停止任务的战术脚本,和裁判指令按钮中的“停止”相对应,注意区别于“急停”;
>>\lua_scripts\play\Ref\KickOff\
Ref_KickOff.lua:中场开球战术脚本;
>>\lua_scripts\play\Ref\KickOffDef\
Ref_KickOffDef.lua:中场开球防守战术脚本;
>>\lua_scripts\play\Ref\MiddleDef\
MiddleDef.lua:中场任意球防守战术的调度脚本,如果只有一个战术脚本,就不需要设置;
Ref_MiddleDef.lua:中场任意球防守战术脚本;
>>\lua_scripts\play\Ref\MiddleKick\
MiddleKick.lua:中场任意球战术的调度脚本,如果只有一个战术脚本,就不需要设置;
Ref_MiddleKick.lua:中场任意球战术脚本;
>>\lua_scripts\play\Ref\PenaltyDef\
Ref_PenaltyDef.lua:点球防守战术脚本;
>>\lua_scripts\play\Ref\PenaltyKick\
Ref_PenaltyKick.lua:点球战术脚本;
>>\lua_scripts\play\Ref\
Ref_Halt.lua:急停任务的调度脚本,和裁判指令按钮中的“急停”相对应,注意区别于“停止”;
OurIndirectKick.lua:前场、中场、后场、角球任意球执行的调度关系,由球的位置判断;
TheirIndirectKick.lua:前场、中场、后场、角球任意球防守执行的调度关系,由球的位置判断;
>>\lua_scripts\play\Ref\Test\Others\
此文件目录下放置的是所有测试脚本;
以上是关于第六章第二节Lua脚本框架的主要内容,如果未能解决你的问题,请参考以下文章
第六章第二十四题(显示当前日期和时间)(Display current date and time) - 编程练习题答案
第六章第二十四题(显示当前日期和时间)(Display current date and time) - 编程练习题答案