发布时间: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低调看高清直播目的在于研究学习传递之用仅供参考,链接导航跳转不存储制作任何内容。