javascript - 从 TileMap 函数中创建特定图 block

标签 javascript phaser-framework tiled

我使用 Tiled 软件创建了以下 map ,我想让箱子发挥作用。实际上,我想知道玩家和宝箱何时重叠,但即使搜索了几个小时我也找不到解决方案。

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

enter image description here

最佳答案

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

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

提示: 你可以给你的箱子对象一个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]));

关于javascript - 从 TileMap 函数中创建特定图 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50201400/

相关文章:

ios - 使用 ios 浏览器在 iframe 中重定向会卡住 Phaser Canvas

javascript - 限制 Phaser3 更新速率的方法?

c# - Monogame C# - 如何在图 block map 图层 0 和 1 之间绘制 Sprite ?

javascript - 使用 Canvas 引擎和平铺 map 编辑器获取 "Uncaught TypeError: Cannot read property ' firstgid' of undefined"

ios - 将 Tiled 层导出到 1 个大 png 文件以节省内存是否明智?

javascript - 如何将此本地存储信息变成可点击的链接?

javascript - 如何将变量从 php 传递到 javascript?

javascript - 滚动时如何与元素交互?

javascript - 将字符串数组中的字母添加到每个动态 div

javascript - 带有 addEventListener 的移相器