我有使用Tiled软件创建的以下地图,我想让胸部功能正常。实际上,我想知道玩家和胸部何时重叠,但即使搜索了几个小时我也无法找到解决方案。
我正在使用ARCADE物理。我尝试使用对象图层但没有任何作用...
答案 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]));