查看 java 文档http://slick.ninjacave.com/javadoc/和对象 TiledMap。
您需要的两种方法是:
getObjectGroupCount()
&
getObjectCount(int groupid)
该getObjectGroupCount()
方法将返回平铺地图中作为对象图层的图层总数,或者更确切地说是每个对象图层的标识符。
这getObjectCount(int groupid)
将返回任何给定层上的对象总数,或对象组中的对象数量。
从这里您可以获得地图中的图层总数和每个图层上的对象总数,因此您知道需要循环多少次才能通过索引访问每个对象,首先是组 ID,它是对象编号
我没有看到按名称搜索的方法,如果其他人这样做,请纠正我。否则我建议在加载地图时阅读这个数组。如果您需要在主游戏循环中动态调用任何对象 ID(在绘图时),我会将 ID 保存在您以后可以用来轻松访问该对象的某个地方。
编辑:我将做一个快速的非语法检查或测试代码来解释:
TiledMap aMap = new TiledMap("whatever.tmx");
int objectGroupCount = aMap.getObjectGroupCount();
for( int gi; gi < objectGroupCount; gi++ ) // gi = object group index
{
int objectCount = aMap.getObjectCount(gi);
for( int oi; oi < objectCount; oi++ ) // oi = object index
{
System.out.println( aMap.getObjectName(gi, oi) );
System.out.println( aMap.getObjectProperty(gi, oi, "somepropertyname", "" ) );
}
}