AndEngine在多个设备上加载TMX映射

时间:2013-01-23 17:10:17

标签: android map scale andengine tmx

我的游戏有问题。我有一张地图1280x1280px。它由40x40的瓷砖组成,因此1个瓷砖是32x32像素。问题是我无法将此地图缩放到我的设备的实际屏幕尺寸。有没有办法做到这一点?

这是我加载tmx文件的方式:

public Scene onLoadScene() {
                // TODO Auto-generated method stub
                this.mMainScene = new Scene(1);

                try
                {
                        final TMXLoader tmxLoader = new TMXLoader(this, this.mEngine.getTextureManager(),
                                                                                                                TextureOptions.BILINEAR_PREMULTIPLYALPHA);
                        this.mTMXTiledMap = tmxLoader.loadFromAsset(this,"gfx/untitled.tmx");

                        //"gfx/0_fire_drill-lvl_01.tmx"
                }
                catch(final TMXLoadException tmxle)
                {              
                        Debug.e(tmxle);
                }

                for(TMXLayer tmxLayer : this.mTMXTiledMap.getTMXLayers())
                {
                        this.mMainScene.getChild(0).attachChild(tmxLayer);
                }              

                return this.mMainScene;
        }

地图就像这样: http://postimage.org/image/403w3dfnx/

这些动作只会发生在红色区域。 我需要在地图上编辑吗?

提前谢谢!

1 个答案:

答案 0 :(得分:1)

问题不在于您如何使用相机生成地图。使用AndEngine的各种相机类之一创建相机。 (我是SmoothCamera的粉丝。)像这样:

SmoothCamera camera = new SmoothCamera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT, 10, 10, 1.0f);

CAMERA_WIDTH和CAMERA_HEIGHT是您要定义的内容。如果将这些设置为较小的值,则可以进行更大的放大。您还可以直接调整相机的缩放比例。像这样:

camera.setZoomFactor(5.0f);

你可能想要设置相机来追逐你的玩家实体。像这样:

camera.setChaseEntity(pChaseEntity)

pChaseEntity是您希望遵循的任何内容。希望这会有所帮助。