引言
Vision 的 Lua 编辑工具组提供多种节省时间的功能,例如代码完成和预定义代码模板。
重要说明:请注意,我们采用 SWIG 封装 Lua 中的 C++ 类,所以所有对象的行为都类似指针 - 包括向量(Vision.hkvVec3)或颜色(Vision.VColorRef)。 因此,赋值(vector1 = vector2)所修改的是指针而非数据。 在这种情况下,您应当使用 clone() 而非赋值(vector1 = vector2:clone())。 ‘+’、‘-’、‘*’、‘/’等关键字可以放心使用,因为它们会为您生成一个新实例:vector1 = vector2 + vector3
代码插入
代码插入图标提供一份传递到 Lua 系统的可用事件类型的列表。 右键单击列表中的某条目,该函数将被放置到您的脚本的末尾。
例如,选择 OnThink(self) 条目将生成如下 Lua 代码片段:
function OnThink(self) end 自动完成
输入代码时,当您在 Timer 等定义符号后方输入一个圆点或冒号,程序会显示自动完成对话框,包括对象所包含的函数。
切换脚本编辑器工具栏上的自动完成图标可启用 / 关闭该功能。
自动完成功能也可手动激活,方法为组合键 CTRL + SPACE,也可用 ESC 键关闭。
脚本缓存
脚本面板提供在 vForge 中启用 / 关闭脚本缓存的选项。 该选项仅影响编辑器中的行为。 脚本缓存默认为启用状态,也就是说,在每个脚本组件的实例化期间,将使用一份脚本资源的缓存版本(如可用)。 如果脚本缓存被关闭,在每个脚本组件的实例化期间,脚本文件将被检查,脚本资源将被重新载入,以防存在任何更改。 该行为模式的使用案例之一是,如果您在在编辑器中运行模式下也想编辑脚本,并为场景添加使用更新后脚本的脚本组件,则应该关闭缓存。 如果您的工作流不明确要求这一行为模式,请将脚本缓存保留为启用状态,因为其性能更佳(载入有大量脚本组件的场景时速度也更快)。
Lua 帮助
为协助您开发 Lua 脚本,您可以随时打开 Lua Scripting API,方法为选择脚本编辑工具栏中的 Lua 帮助图标,或按 F1 键:
该图标会打开一份标准帮助文档,全面涵盖 Vision Lua 类,另有使用中的命令的简单示例。
提示:如果您想获得有关某个具体命令的帮助,例如”OnCreate”、”SetPosition”等等,只需在脚本编辑器中选择文本并按 F1 键,帮助程序会立刻为您搜索关键词。
Vision Lua 101
ScriptingAPI CHM 对于所有脚本命令都是一份宝贵的资源,但为帮助您在 Lua 学习过程中入门,有一些简单的命令和规则需要了解:
信息:示例项目中有一份脚本示例:<VisionSDK>/Data/Vision/Samples/Engine/Scripting/LuaScripting.project。
Self
self 变量用于引用该脚本所附的实体。 对于某个实体类型,我们可以使用如下脚本行。
self:SetMesh("Models\\Warrior\\Warrior.model") self:SetScaling(2) 这个小示例会把实体模型文件设给 Warrior,并将其统一缩放增加到 2。
调试打印
如果您需要测试变量内容或仅插入简单的追踪,打印到屏幕是快捷而简单的反馈方法。 您可使用如下命令:
Debug:PrintLine("Hello World") 请使用双点技巧在 PrintLine 函数方法中合并字符串。
local numProps = self:GetNumProperties(); Debug:PrintLine("The entity has " .. numProps .. " prop(s)") 当您需要打印某个矢量的内容,请使用 tostring(var) 函数方法。
Debug:PrintLine("Setting a new property value...") self:SetProperty("myProp", Vision.hkvVec3(1.2, 2.3, 3.4)); propVal = self:GetProperty("myProp"); Debug:PrintLine("The entity's new property value is: " .. tostring(propVal)) 时间增量
为确保运动在不同帧率下保持恒速,您可以将速度因数乘以时间增量。 当前时间增量(从上次调用至今的时间)可从 Timer:GetTimeDiff() 函数方法返回。
function OnThink(self) -- rotate entity over time local t = Timer:GetTimeDiff() self:IncOrientation(t*10, 0, 0) end |
相关推荐
《Visual C++与HGE游戏引擎与Lua脚本的整合应用》 在游戏开发领域,高效的游戏引擎和灵活的脚本语言是不可或缺的工具。Visual C++作为一款强大的编程环境,常常被用于游戏的底层系统构建,而HGE(Happy Game Engine...
游戏+lua脚本”和“3.Lua使用入门”可能是综合性的介绍,涵盖了游戏开发中的Lua脚本应用以及如何开始使用Lua的初级指南。 综上所述,这个压缩包提供的资源全面覆盖了从Lua语言基础到HGE游戏引擎的结合应用,是学习...
通过堆栈来实现引擎与Lua脚本之间的信息传递,这一中间层的设计允许引擎调用Lua脚本中定义的函数,同时也允许Lua脚本调用引擎中定义的功能函数。这种机制的一个显著优势是,可以在不改变引擎核心代码的前提下,增加...
游戏引擎以Lua脚本驱动的经典扫雷游戏 程序介绍: 1、开发环境VC6 2、UI使用MFC 3、绘图使用GDI 4、声音使用mmsystem媒体功能 5、Lua开发包版本lua5.1.4 游戏引擎: 1、Lua程序驱动引擎QLua.dll版本2.0,...
在"易语言LUA支持库100版LUA_FNEfne"和"新LUA支持库100版LUA_FNEfne"这两个文件中,我们可以推测它们是为LUA脚本设计的专门库,可能包含了一系列与易语言(E Language)接口的实现,或者是对LUA功能的增强和优化。...
在这个案例中,LuaProfiler.dll是一个专门为lua脚本定制的统计模块,当lua脚本在运行时,它可以被嵌入到lua虚拟机中,收集并记录必要的执行信息。 使用这个工具的过程大致如下: 1. 首先,你需要在你的lua环境中...
在本文中,我们将深入探讨如何在Delphi编程环境中调用Lua脚本,以实现更灵活的逻辑处理和功能扩展。Delphi是一款强大的Object Pascal集成开发环境(IDE),而Lua则是一种轻量级、高效的脚本语言,常用于游戏开发和...
lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问...
在本例程中,STM32F103被用于运行Lua脚本,这是一种轻量级的、可嵌入式的脚本语言,通常用于游戏开发、自动化任务和快速原型设计。 Lua的移植意味着将Lua解释器的源代码修改和编译,使其能在STM32F103的硬件平台上...
【Lua脚本语言在自动测试中的应用】 Lua是一种轻量级的脚本语言,因其高效、易用和可扩展性而在自动测试领域中得到广泛应用。它允许开发者快速编写测试脚本,实现对软件和硬件的自动化测试,从而提高测试效率,减少...
游戏引擎以Lua脚本驱动的经典扫雷游戏 程序介绍: 1、开发环境VC6 2、UI使用MFC 3、绘图使用GDI 4、声音使用mmsystem媒体功能 5、Lua开发包版本lua5.1.4 游戏引擎: 1、Lua程序驱动引擎QLua.dll版本2.0,支持对Lua...
在描述部分,文档详细介绍了通过LUA脚本实现设置四个系统参数的功能:设置波特率、设置蜂鸣器响、设置RTC(实时时钟)和使用滑动条调节背光。这些功能的实现对于设备的基本操作是至关重要的,能够帮助用户根据需求...
这个"lua脚本源码包"提供了lua在嵌入式开发中的应用实例,特别适合那些希望学习如何在Windows XP环境下,使用Visual Studio 2008进行lua脚本开发的初学者。 首先,我们要了解Lua的基本概念。Lua是一种解释型语言,...
Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和维护。 Lua由...
软件功能:此版本的lua4脚本引擎 注意如果要编译大话西游2.0.78版,需要相应的将src\lopcodes-78.h 改名 lopcodes.h。 版权属于Copyright (C) 1994-2000 TeCGraf, PUC-Rio. All rights reserved. 所有 官方网站:...
3. Redis 中执行 Lua 脚本的命令格式:`EVAL script numkeys key [key ...] arg [arg ...]` * `script` 是第一个参数,为 Lua 5.1 脚本(字符串)。 * `numkeys` 指定后续参数有几个 key。 * `key [key ...]`,...
"基于Lua脚本语言的嵌入式UART通信的实现" ...本文还介绍了Lua如何服务于串口通信的应用,包括Lua与C交互环境的建立、提取脚本中的串口配置数据、调用Lua函数设置发送缓冲区、通过Lua函数处理接收缓冲区数据等方面。
Lua是一种轻量级的脚本语言,主要用于嵌入到其他应用程序中以扩展功能。在Windows系统环境下,要使用Lua,你需要一个编译器或者解释器来处理和运行Lua代码。标题提到的“window系统 Lua脚本语言编译器”实际上指的是...