【问题标题】:Corona use object properties from Tiled layersCorona 使用 Tiled 图层中的对象属性
【发布时间】:2014-06-12 13:36:15
【问题描述】:

我是 Lua 脚本和游戏开发的新手。所以拜托我只是 Lua 的菜鸟。

我已经在网上搜索了我的问题的解决方案,但没有任何运气。

我在 windows7 上使用 Photoshop、Corona、Dusk、json 和 Tiled。

我正在创建一个类似“棋盘”的游戏,即 Setlers。我正在使用世界地图作为背景。游戏区域的背景图片是一张世界地图(world.png 文件)。我这里没问题。

我想在我的游戏地图上创建与国家边界相匹配的透明可点击对象,其中存储在对象中的所有参数和值(我已在 Tiled 中添加)。所以当玩家点击国家时,透明对象(在地图顶部)是被点击的对象,并且事件监听器会在点击时起作用。

在 Tiled 中,我可以创建我需要的所有对象,为它们命名 + 分配参数和其他值。 如果我在 Tiled 中添加 object.alpha 值,则 alpha 值将传递给 corona 并在那里工作。 如何从 Corona 中的 json/tmx 文件中读取这些数据并将它们添加到 lua 表中?

我想使用平铺地图及其对象的方式是为每个国家的边界​​创建一条折线轨迹(每个国家创建一个对象)。然后将每个“国家追踪对象”放置在 world.png 地图的顶部,同时使用国家名称命名对象,例如“object.name = TileBritannia”以及游戏中使用的其他属性。

我的问题是获取对象信息,例如 object.name,以及响应单击对象的事件侦听器。

  1. 当我使用 png 文件作为背景图像时,折线是在地图上创建可点击区域的正确方法吗?

  2. 在一个图层中或将所有国家作为 Tiled 中的单个对象图层创建国家边界对象的最佳方法是什么。

  3. 我可以创建一个包含子对象的层并仍然在我的代码中访问它们吗?

  4. 如何获取在 Tiled 中设置的对象名称和其他属性。

当我尝试使用 (local britannia = tiledMap:load("britannia.json")) 时,“load”不起作用,得到一个 nil 值。

我正在寻找可以提取/获取/读取 object.name 的代码,即“objBritannia”或“TileBritannia”。来自 json/tmx 文件。

当我尝试从 json 文件中读取不同的参数时,我没有得到我期望的结果。我得到了结果 = function: 046A73B0,希望得到某种对象名称。

请提供链接或代码示例。

我已经编辑了问题。 谢谢

【问题讨论】:

    标签: json object lua coronasdk tiled


    【解决方案1】:

    对于问题 1 和 2:我没有使用 Tiled,但基于 Corona Tiled,您心中的策略是正确的。该页面让我认为您可以只使用点击事件侦听器来检测点击。如果您对该网页上的示例有疑问,请更新您的问题以更具体。如果点击事件处理不起作用(也许您正在谈论不同的 Tiled 库),请查看 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") 应该做什么,所以我无法发表评论。

    【讨论】:

      猜你喜欢
      • 2017-12-19
      • 2018-04-25
      • 1970-01-01
      • 2017-08-20
      • 1970-01-01
      • 2016-02-16
      • 2016-02-13
      • 1970-01-01
      • 2013-12-17
      相关资源
      最近更新 更多