通过 Lua(iPhone SDK)访问对象。
2010-8-22 17:26:26
收藏:0
阅读:156
评论:1
我正在尝试理解Lua的工作原理,以及如何将其集成到项目中,比如基于Obj-C的iPhone游戏。我已经成功地集成了Lua的源代码,并成功使用简单的管理器类将在.lua文件中编写的函数调用转换为项目中的Obj-C方法。
现在我有点困惑,不确定如何使用Lua,通过Google了很多资料,也没有找到填补我理解上的小空白的文章。我想使用Lua为我的游戏脚本化简单的游戏逻辑;例如,我可能想检查玩家是否移动到了关卡的某一部分,然后我检查他是否拾取了一个物体,然后一旦他扔出那个物体我检查它是否击中了另一个物体,等等。
在脚本中,我想要这样的命令:
if (objectsAreTouching(level.objects["objIndex1"], level.objects["objIndex2"]))
{
//Move to next win-condition.
}
所以我知道如何访问一个函数,比如上面所说的objectsAreTouching
,但我无法看到如何从.lua文件中访问游戏主类之一中的Dictionary或Array。我假设这一点是可能的,我是对的吗?如果是这样,你如何做到这一点呢?如果可以,你可以在游戏引擎中有一个方法返回一个BOOL值将其传递给脚本,那么上面的if语句就会执行其中的代码吗?
我可能问得不好,请让我知道是否有必要澄清任何问题。此外,我知道围绕苹果禁止解释代码的问题,这对我的小项目没有关系。
感谢任何帮助!
原文链接 https://stackoverflow.com/questions/3542489
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
你至少有三个选择:
在 Lua 的一侧创建字典(使用 Lua 的
table
)和数组(也使用 Lua 的table
),而不是在 C++ 的一侧。你可以在 C++ 中使用 Lua 的 C API 实现这一点,或者在你加载的 Lua 脚本中构建游戏环境时实现。提供访问函数给 Lua 以读取基于 C++ 的字典和数组。这些访问函数就像你描述的
objectsAreTouching
函数一样,但是在数据访问器级别上。通常从访问器返回的结果将是lightuserdata
。使用 Lua 的
userdata
对象来在 Lua 和 C++ 之间共享字典和数组的状态。在这种情况下,它们将是由 Lua 管理并需要访问器的 C++ 对象,就像 (2) 一样,但它们可以拥有方法(一个metatable
)和与之相关联的environment
。