vlambda博客
学习文章列表

【第六章】第一节Lua编程基础


机器人的编程使用


通过前面几节对机器人的介绍,已经对足球机器人有一个比较全面的了解了。相信你一定对如何让机器人完成各种默契的配合、精彩的走位而感兴趣吧!在机器人的控制编程中,我们使用到了一种轻量级的脚本语言:Lua语言,接下来的课程将会带你走进lua语言的世界。



Lua语言简介


Lua是一个小巧的脚本语言。是巴西里约热内卢天主教大学里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。因此Lua脚本可以很容易的被C/C++ 代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,ini等文件格式,并且更容易理解和维护。在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。很多应用程序、游戏使用LUA作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括魔兽世界、愤怒的小鸟等。

(魔兽世界的插件用的也是lua)



Lua的环境搭建


1.下载和安装Lua:

1)从官方网站上下安装包,下载到本地后安装。

2)安装完成,把Lua的安装路径添加到环境变量中,如图

【第六章】第一节Lua编程基础

3)打开命令行工具,输入: lua -v,当屏幕上输出了Lua的版本信息就说明配置成功了。

【第六章】第一节Lua编程基础

附上视频↓

【第六章】第一节Lua编程基础


>>安装编辑器SublimeText

【第六章】第一节Lua编程基础

编辑器:Sublime Text 2/3


>>安装SublimeText的插件

想在subLime中集成编译Lua(或其他语言)功能,只需要在Tool->Build System -> New Build System中添加代码:

{

    "cmd":["lua", "$file"],

    "file_regex":"^(?:lua:)?[\t](...*?):([0-9]*):?([0-9]*)",

    "selector":"source.lua"

}

然后在sublime Text文件夹路径下/Packages/ 中新建Lua文件夹, 保存为Lua.sublime-build文件即可。可以通过Preferences->Browse Packages打开sublime Text文件夹。在一切设置好以后,通过ctrl + B 快捷键编译文件。

“Hello PlayBot”


运行第一个程序“Hello PlayBot”

有两种方式输出”Hello, PlayBot”.


>>使用命令行

命令行窗口下输入:lua,回车 进入lua命令行编辑模式。然后直接输入print(“hello, playbot”)

【第六章】第一节Lua编程基础

附上视频↓

【第六章】第一节Lua编程基础


>>使用sublimeText编写

1)打开sublimeText,输入:print(“hello,playbot”)

【第六章】第一节Lua编程基础

2)保存为hello.lua

【第六章】第一节Lua编程基础

3)然后打开windows下的命令行程序,进入保存的目录(我保存在E盘根目录下)

4)输入:lua hello.lua,然后回车

5)可以看到屏幕上打印出我们之前双引号中输入的内容。我们成功了。

附上视频↓


{下面是思考练习内容}


1.编写程序,能够输出Hello, World!


Lua语法用例


>>什么是法语

语法,简单的讲就是,一个规则,某种程序语言使用的规则。这种规则的约束,是为了,程序的解释器能够使用这种规则对代码进行解析,建立一个执行的列表,然后按这个列表进行执行。

语法包括{变量、关键字、运算符、条件控制语句、循环控制语句、函数、闭包、表}。


{下面是思考练习内容}


1.利用循环语句输出10次Hello,World!

2.type(x)函数是可以判断x的类型的函数,当x是表类型是type(x)的值是’table’,试着使用循环控制和条件控制语句输出表robot里元素的值。

  robot = {

           role = ‘shooter’,

           speed = ‘5’,

           position = {

                      x = 100,

                      y = 100

                    }

         }

大家如果想了解更多关于Lua语法相关知识,

可参考原文