从TileMap功能中创建特定的图块

时间:2018-05-06 15:27:09

标签: javascript phaser-framework tiled

我有使用Tiled软件创建的以下地图,我想让胸部功能正常。实际上,我想知道玩家和胸部何时重叠,但即使搜索了几个小时我也无法找到解决方案。

我正在使用ARCADE物理。我尝试使用对象图层但没有任何作用...

enter image description here

1 个答案:

答案 0 :(得分:1)

一个非常简单的解决方案是将物体放在胸部的单独物体层中。 当您将地图加载到游戏中时,请检查该图层中的所有对象并将其存储在某个位置(例如,在列表中)

在游戏过程中,您可以轻松检查您的玩家是否与其中一个箱子重叠。

提示: 你可以给你的胸部物体一个id和其他参数来定义它们的行为。

实现看起来像这样:

您的对象出现在.tmx

<objectgroup name="Container" offsetx="0" offsety="2">
  <object id="148" name="Chest1" x="72" y="3654">
   <properties>
    <property name="state" value="chest_closed"/>
    <property name="epic_Items" value="false"/>
    ...
   </properties>
  </object>
 </objectgroup>

现在只需将它们解析为游戏逻辑

List<ItemContainer> lootableContainers = new List<ItemContainer>();
foreach (var o in curMap.ObjectGroups["Container"].Objects)
    lootableContainers.Add(new ItemContainer([o.params]));