我使用 Tiled 软件创建了以下 map ,我想让箱子发挥作用。实际上,我想知道玩家和宝箱何时重叠,但即使搜索了几个小时我也找不到解决方案。
我正在使用 ARCADE 物理。我尝试使用对象层但没有任何效果...
最佳答案
一个非常简单的解决方案是将一个对象放置在胸部上方的单独对象层中。 当您将 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/