我的游戏有问题。我有一张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)
你想让它跟着什么就跟着什么。希望这有帮助。