3

我的游戏有问题。我有一张 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/

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

先感谢您!

4

1 回答 1

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 是您希望它遵循的任何东西。希望这可以帮助。

于 2013-02-16T22:17:21.223 回答