脚本语言LUA.3.3二次开发环境配置

发布时间:2024-01-20 18:22:21

不久前,我接触到了LUA这种新的脚本语言以及二次机器人开发的一些概念。 这是非常复杂和混乱的。 其实在开始学习这些杂七杂八的东西之前,我就已经暗自打算写一篇技术博客来记录自己的学习了。 不过我时间不多,所以一直没有写。 就连机器人的事情也被推迟了。 向下。

网上还没有类似这种机器人开发的技术文章(技术太偏了)。 很多问题只能求助于公司里有经验的前机器人足球队成员,或者自己看文档(说实话,官方的SOM II第一本开发手册确实不太好,我就看了几遍)秒,实际操作中还出现各种奇怪的问题。)据我感觉,效率很低。

一方面,我希望记录自己学习的点点滴滴,写一篇博客,供以后参考; 另一方面,我也希望接下来的机器人足球队成员不再有单一的信息来源,有我的一些博客。 参考。 总体来说是有好处的。

SOM v3.3.3 二次开发环境配置

这里只讲LUA,不讲C++ dll。 后面的例子也避开了C++,直接使用LUA来控制机器人。

首先,最基本的就是你必须有SOM v3.3.3软件,否则就不用谈了。

官方下载链接已过期,如有需要请添加。

我可以为您提供完整的SOM v3.3.3

解压完成后,先不要急于打开软件,否则会遇到各种问题

首先以管理员身份运行所有.exe(这个在二次开发手册里,可以直接参考二次开发手册)

解压后,右键单击根目录中的.exe应用程序的属性,选中兼容复选框,右键单击该应用程序,然后以管理员身份运行该程序。”

如果不出意外的话,还有这些东西

打开或文件夹,如图文件夹

然后以管理员身份运行这两个后台相关程序。

还有最简单的方法,直接在根目录下搜索.exe

然后你会发现这些东西:

只需将所有内容设置为管理员权限即可!

请记住,这很重要! 记住! 否则会出现死机、卡顿、无法按等很多奇怪的问题。有时候点击开始测试,会弹出窗口,卡住了,然后会要求你去“活动裁判”退出游戏,但您将无法退出。 这是管理员权限的问题。

软件路径最好是英文的,没有特殊字符,否则很容易出问题!

当中文路径改为英文后,原本授予管理员的.exe管理员权限就会消失! 需要重新赋能! ! ! (我被困在这里了!!!)

编写LUA脚本

这里使用的LUA语言与真实的LUA开发不同。 大多数麻烦的事情已经被官方代码处理了。 我们只需要使用模板,使用一些简单的功能进行二次开发即可。

选择一个LUA脚本后(测试模式下只能选择一个LUA脚本),机器人控制程序将以60fps的速度执行该脚本。接下来我们看看如何编写这样的脚本

下面是官方的LUA模板:

我们所有的开发基本上都是在以下框架内进行的

即战术框架的主要组织

gPlayTable.CreatePlay{
}

状态框架可以理解为一个函数,需要被调用才能发挥作用。 我们稍后再讨论这个问题。

它是对初始状态框架的规定。 因为当执行一个LUA脚本时,至少在这个程序中,是没有明确的入口函数的(入口函数相当于C++中的主函数),所以它的使用相当于调节。 入口函数是哪一个?

例如这里

firstState="doRef",

这样,当LUA脚本执行时,会首先进入doRef函数。

进入功能后,我们要做的就是给机器人分配任务。 一般来说,常用的机器人选手的英文名字有

向前

后卫

守门员

每一方的机器人只会有一个这样的东西,所以不需要担心这样的东西。

["getball"]={
    Kicker=task.GetBall("Kicker","Kicker"),
},

这时候,我在函数中写的任务——

注意大小写

这是官方给你的接球功能

该功能的使用方法在二次开发手册中有描述。 我将其摘录在这里:

执行者是,放在这里就行了机器人足球,意思就是拿着球的人是

然后,当你拿到球时,你必须面对它。 如果设置为 ,那么当它拿到球时,正面将始终面向机器人,如下所示:

2号是友方,3号是友方。 当2号拿到球时,面向3号。(即使朝球的方向行走,也始终面向3号)

有时这可以使传球更容易

当然,你也可以选择不关注任何人,然后填写机器人足球,关注自己,即不关注任何人。

测试执行后一切正常。

最后是名字的用法

name 后面的值必须等于脚本文件的名称

不能添加后缀,例如

.lua名称=“”

如果名字拼写错误,将会出现:

加载失败:策略名称应与文件名相同

如果不直接写名字,脚本检测会失败(无法通过编译)

并且提示表索引为零

该信息将在该界面中呈现:

下面提供了完整正确的代码

gPlayTable.CreatePlay{
firstState="getball",
["getball"]={
    Kicker=task.GetBall("Kicker","Kicker"),
},
name="getball"
}

这只是最基本、最简单的写法。 一般情况下,常规LUA脚本的长度可以达到数百行,使用数十个函数。 这就需要我们的链接功能工具:状态跳转功能。

这是我们下次的话题。

记住,如果你错误地使用了官方的函数,也会被归咎于编译错误!

导入LUA脚本测试

说了这么多,我还没教你如何测试呢……

调试代码绝对是作为一名程序员的精髓,也是必须掌握的东西。

该测试与其他代码不同。 它的测试结果全都在这片绿色的足球草坪上。 我的意思是你几乎没有办法调试LUA。

所以,我们只能利用上帝赐予我们最先进的东西——眼睛

一般这种可以从妈妈肚子里解压的。 它随您的系统一起提供。 如果没有,也可以从别人那里移植。 是要收费的而且非常贵。 附近的医院可能有一些。 关键是你找不到盗版或绿色版本。 。

咳咳,咱们进入正题吧:

首先你把写好的LUA脚本放到指定的位置,

这里我们以黄色队为例,

一般都在这个目录下

\SOM v3.3.3\\\播放

然后你会看到三个文件夹,

Nor、参考和测试

测试脚本直接插入Test

测试时会提示是否转换为普通版本。 如果您觉得您的脚本与您想象的没有太大差异,您可以将其转换为常规版本。

届时它就会出现在Ref目录中。

然后点击程序

。EXE文件

选择测试模式

选择模拟训练

选择黄色团队(这取决于您正在测试哪个团队)

只需检查所需数量的团队成员,但必须出现在 LUA 脚本中分配给该任务的团队成员。

例如,如果它出现在前面的脚本中,则必须在此处选择前锋。

单击“浏览”直接找到您的脚本的位置,然后单击下面的“导入”。 该脚本将出现在脚本选择区域中。 您也可以直接在脚本选择区选择您已经做好的脚本。

然后你就可以点击“开始测试”按钮了! ! !

然后你会看到机器人和它的足球场

将鼠标放入足球场中,戳一下即可放置足球。 默认情况下,机器人会瞄准足球并保持距离。

上面的蓝色机器人是用来添加敌人的。 您可以通过鼠标拖动来自由放置敌人。

点击执行即可看到脚本的测试结果。 单击“停止”,它将停止。

一切无误后机器人足球,将转换为正式文字。 当然,您不必选择转换为正式脚本。

至此,您已经掌握了SOM v3.3.3二次开发中LUA脚本的基本使用和环境搭建

jrs低调看高清直播 版权所有 XML地图 备案号:滇ICP备2023016052号

jrs低调看高清直播直播网内容由互联网收集整理,jrs低调看高清直播目的在于研究学习传递之用仅供参考,链接导航跳转不存储制作任何内容。

直播 足球 篮球 录像 资讯