我正在尝试通过瓦片地图实现碰撞检测系统的功能。我有一个二维“口袋妖怪风格”的游戏,其中呈现了一个瓦片地图。具体来说,我在我的 tiled map .tmx 文件中有一个'collision'层,我想让玩家和其他实体与之交互。我的问题是如何将玩家精灵 (扩展了 Sprite 类) 连接到瓦片地图的 'collision' 层,并在两者之间引起碰撞。感激任何建议。
我正在尝试通过瓦片地图实现碰撞检测系统的功能。我有一个二维“口袋妖怪风格”的游戏,其中呈现了一个瓦片地图。具体来说,我在我的 tiled map .tmx 文件中有一个'collision'层,我想让玩家和其他实体与之交互。我的问题是如何将玩家精灵 (扩展了 Sprite 类) 连接到瓦片地图的 'collision' 层,并在两者之间引起碰撞。感激任何建议。
Player
可能不应该extend Sprite
,因为你的玩家通常比一个Sprite
更复杂。它可能由多个精灵或甚至Animations
组成。将一个精灵作为玩家的属性保留。int objectLayerId = 5;
TiledMapTileLayer collisionObjectLayer = (TiledMapTileLayer)map.getLayers().get(objectLayerId);
MapObjects objects = collisionObjectLayer.getObjects();
// there are several other types, Rectangle is probably the most common one
for (RectangleMapObject rectangleObject : objects.getByType(RectangleMapObject.class)) {
Rectangle rectangle = rectangleObject.getRectangle();
if (Intersector.overlaps(rectangle, player.getRectangle()) {
// collision happened
}
}
这里有更多你可能感兴趣的链接: