Corona使用Tiled图层中的对象属性。
我是 Lua 脚本和游戏开发的新手,请见谅。
我在网上搜寻解决问题的方案,但没有运气。
我在 Windows 7 上使用 Photoshop、Corona、Dusk、json 和 Tiled。
我正在创建一个“棋盘”式的游戏,即 Setlers。我使用世界地图作为背景。游戏区域的背景图像是世界地图 (world.png 文件)。这里没有问题。
我想要创建透明的可点击对象,与我的游戏地图上的国家边界匹配,且所有参数和值都存储在对象中(我已经在 Tiled 中添加了)。因此,当玩家单击国家时,透明对象(在地图上方)是被单击的对象,事件监听器对单击作出响应。
在 Tiled 中,我可以创建所需的所有对象,对其命名并分配参数和其他值。如果我在 Tiled 中添加了 object.alpha 值,则此 alpha 值将传递到 Corona 并在那里工作。我该如何从 json/tmx 文件中读取这些数据并将它们添加到 Lua 表中?
我打算使用 Tiled 地图及其对象的方式是为每个国家创建一个折线轮廓跟踪(创建一个每个国家的对象)。然后将每个“国家跟踪对象”放置在 world.png 图片上方,同时将对象命名为该国家的名称,例如“object.name = TileBritannia”,以及其他在游戏中使用的属性。
我的问题在于如何获得对象信息(例如 object.name),以及事件监听器对对象点击作出响应。
在使用 png 文件作为背景图像时,在地图上创建可点击区域的正确方法是折线吗?
创建国界对象的最佳方式是在一个图层中还是所有国家均作为 Tiled 中的单个对象图层?
我能否创建一个图层,其中包含子对象,但仍能在我的代码中访问它们?
如何获得在 Tiled 中设置的对象名称和其他属性。
当我尝试使用(local britannia = tiledMap:load(“ britannia.json”))时,“load” 没有起作用,结果为 nil 值。
我正在寻找一种从 json/tmx 文件中提取/获取/读取 object.name,如“objBritannia”或“TileBritannia”的代码。
当我尝试从 json 文件中读取不同参数时,我没有得到预期的结果。我得到的结果为 function: 046A73B0,希望得到某种对象名称。
请提供链接或代码示例。
我已经编辑了问题。
谢谢!
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在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中获取用户配置主目录的跨平台方法
对于问题1和问题2:我没有使用过Tiled,但是根据Corona Tiled的说明,你的策略是正确的。这个页面让我觉得你可以使用tap事件监听器来检测tap。如果你在这个网页的示例中遇到问题,请更新你的问题以描述得更具体。如果tap事件处理不起作用(可能你正在谈论一个不同的Tiled lib),那么请看 Polygon fill and Point in Polygon detection,因为这基本上就是你需要做的。尝试一些那里的东西。如果仍然不起作用,请用具体的情况更新你的问题,否则它很可能会被关闭(它现在有点太宽泛了)。
对于#3,Lua是一种动态语言,支持在一行中向对象添加属性。所以按照Corona Tiled页面上的示例,你只需要做到:
tiledMap = require("tiled") local britannia = tiledMap:load("britannia.json") britannia.name = "Britannnia" local Zulu = tiledMap:load("zulu.json") zulu.name = "zulu"自然地你可能有一堆东西,所以你将创建一个函数,每个瓷砖都会调用它。我不清楚map.layer ["objBritannia "].nameIs ("TileBritannia")的作用,所以无法发表评论。