如何从 Slick2d 中的 Tiled 加载多边形对象?
How to load polygon objects from Tiled in Slick2d?
我需要将在 Tiled 中绘制的多边形对象加载到我的 slick2d 游戏中。我可以加载矩形对象,并从中创建碰撞框,但我似乎找不到任何方法来加载多边形? (顶点等)。这在 slick2d 中可行吗?
哟!所以我设法找到了解决方案。我会 post 我为任何感兴趣的人所做的事情:
我所做的基本上是自己动手,自己添加多边形支持。我从 org.newdawn.slick.tiled 复制了所有 classes 并制作了我自己的版本,并添加了多边形支持。在 TiledMap class 中,我修改了内部 GroupObject class 以包含一个名为 vertecies 的 Vec2 数组,然后我修改了构造函数,以便它查找一个名为 "Polygon" 的子对象(这是多边形所在的位置)存储信息)然后将"points"属性的String值解析成一个Vec2的数组,我存储在vertices变量中。然后我添加了一个返回顶点变量的 getObjectVertices(int groupID, int objectID) 方法。
希望这对遇到我情况的其他人有所帮助!现在加载地图效果很好,我为我的小 McGyver 解决方案感到自豪 ;)
我需要将在 Tiled 中绘制的多边形对象加载到我的 slick2d 游戏中。我可以加载矩形对象,并从中创建碰撞框,但我似乎找不到任何方法来加载多边形? (顶点等)。这在 slick2d 中可行吗?
哟!所以我设法找到了解决方案。我会 post 我为任何感兴趣的人所做的事情:
我所做的基本上是自己动手,自己添加多边形支持。我从 org.newdawn.slick.tiled 复制了所有 classes 并制作了我自己的版本,并添加了多边形支持。在 TiledMap class 中,我修改了内部 GroupObject class 以包含一个名为 vertecies 的 Vec2 数组,然后我修改了构造函数,以便它查找一个名为 "Polygon" 的子对象(这是多边形所在的位置)存储信息)然后将"points"属性的String值解析成一个Vec2的数组,我存储在vertices变量中。然后我添加了一个返回顶点变量的 getObjectVertices(int groupID, int objectID) 方法。
希望这对遇到我情况的其他人有所帮助!现在加载地图效果很好,我为我的小 McGyver 解决方案感到自豪 ;)