我的游戏有问题。我有一张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/
行动只会在红色区域发生。
我需要把地图放进去吗?
提前谢谢你!

最佳答案

问题不在于你如何生成地图,而在于你的相机。使用andengine的各种摄影机类之一创建摄影机。(我是smoothcamera的粉丝)比如说:

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

相机宽度和相机高度是供您定义的整数。如果将这些设置为较小的值,则放大效果会更好。你也可以直接调整相机的变焦。这样地:
camera.setZoomFactor(5.0f);

你可能想设置摄像头来追踪你的玩家实体。像这样的:
camera.setChaseEntity(pChaseEntity)

你想让它跟着什么就跟着什么。希望这有帮助。

07-26 09:40