如何使用TMX映射对象属性来更改对象行为

时间:2013-04-17 08:21:46

标签: android andengine

我正在使用Tiled地图在andEngine中开发游戏 在TMX地图中我有河对象,我希望玩家在落入河中后会死亡

但我不知道如何实现这个

我只能使用以下代码创建墙对象:

private void createUnwalkableObjects(TMXTiledMap map)
    {
        // Loop through the object groups
         for(final TMXObjectGroup group: this.mTMXTiledMap.getTMXObjectGroups()) 
         {
             if(group.getTMXObjectGroupProperties().containsTMXProperty("wall", "true"))
             {
                 // This is our "wall" layer. Create the boxes from it
                 for(final TMXObject object : group.getTMXObjects()) 
                 {
                    final Rectangle rect = new Rectangle(object.getX(), object.getY(),object.getWidth(), object.getHeight());
                    final FixtureDef boxFixtureDef = PhysicsFactory.createFixtureDef(0, 0, 1f);
                    PhysicsFactory.createBoxBody(mPhysicsWorld, rect, BodyType.StaticBody, boxFixtureDef);
                    rect.setVisible(false);
                    mScene.attachChild(rect);
                 }
             }
         }
    }

提前致谢

1 个答案:

答案 0 :(得分:1)

使用相同的代码。在TMX编辑器中,创建一个新图层并为其添加属性“危险”。然后,您可以在那里创建任何对象(例如,河牌上的矩形)。然后添加另一个if:

...
else if(group.getTMXObjectGroupProperties().containsTMXProperty("danger", "true"))
{
    // This is layer with dangerous objects (river etc)
    for(final TMXObject object : group.getTMXObjects()) 
    {
        // create sensor physics body and register collision detection
        // on collision, make the user die
    }
}