Andengine 瓦片地图1
使用Tiled编辑器 制作出地图 然后导出对应的tmx 和tsx 文件 。
然后导入到对应android项目的assets文件夹下,
修改这2个文件的source属性(就是这2个文件现在的路径) 可以直接文本的形式打开修改。
不同版本的andengine 可能有些细微不同 大家可以看下具体源码 修改下
TMXLoader类:
用来将TMX,TSX文件加载到TMXTiledMap对象中去。
TMXLoader(Context pContext, TextureManager pTextureManager, TextureOptions pTextureOptions,
VertexBufferObjectManager pVertexBufferObjectManage , ITMXTilePropertiesListener pTMXTilePropertyListener)
TMXTiledMap类:
用于表示整个瓦片地图的文件的类。它包括了所有的图层,瓦片及其相关属性。
使用TMXLoader.loadFromAsset(Context pContext, String pAssetPath)方法来获得
TMXLayer类:
瓦片地图由图层组成,每个图层上都有自己的瓦片。
TMXTiledMap.getTMXLayers().get(int X);用来获得图层,X为图层的引索值。
TMXTile类:
瓦片
可以用
getTMXTile(int pTilteColumn, int pTileRow)
getTMXTileAT(float pX,float pY)来获得瓦片。
当瓦片的贴图需要改变时,可以
setGlobalTileID(TMXTileMap pTMXTileMap , int pGlobalTileID)
pGlobalTileID是Tiled编辑器赋予瓦片图片的全局ID
代码
package com.testsprite; import org.andengine.engine.camera.Camera; import org.andengine.engine.options.EngineOptions; import org.andengine.engine.options.ScreenOrientation; import org.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy; import org.andengine.entity.scene.Scene; import org.andengine.extension.tmx.TMXLayer; import org.andengine.extension.tmx.TMXLoader; import org.andengine.extension.tmx.TMXLoader.ITMXTilePropertiesListener; import org.andengine.extension.tmx.TMXProperties; import org.andengine.extension.tmx.TMXTile; import org.andengine.extension.tmx.TMXTileProperty; import org.andengine.extension.tmx.TMXTiledMap; import org.andengine.extension.tmx.util.exception.TMXLoadException; import org.andengine.opengl.texture.TextureOptions; import org.andengine.ui.activity.SimpleBaseGameActivity; public class TMXTiledMapExample extends SimpleBaseGameActivity { // =========================================================== // Constants // =========================================================== private static final int CAMERA_WIDTH = 1280; private static final int CAMERA_HEIGHT = 768; private Camera mCamera; private TMXTiledMap mTMXMap; private TMXLayer mTMXLayer1; @Override public EngineOptions onCreateEngineOptions() { mCamera=new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); EngineOptions mEngineOptions = new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED, new RatioResolutionPolicy( CAMERA_WIDTH, CAMERA_HEIGHT), mCamera); return mEngineOptions; } @Override protected void onCreateResources() { } @Override protected Scene onCreateScene() { Scene scene=new Scene(); try { final TMXLoader tmxLoader = new TMXLoader(this.getAssets(), this.mEngine.getTextureManager(), TextureOptions.BILINEAR_PREMULTIPLYALPHA, this.getVertexBufferObjectManager(), new ITMXTilePropertiesListener() { @Override public void onTMXTileWithPropertiesCreated( final TMXTiledMap pTMXTiledMap, final TMXLayer pTMXLayer, final TMXTile pTMXTile, final TMXProperties<TMXTileProperty> pTMXTileProperties) { } }); this.mTMXMap=tmxLoader.loadFromAsset("map/sprite.tmx"); } catch (final TMXLoadException tmxle) { } mTMXLayer1=this.mTMXMap.getTMXLayers().get(0); scene.attachChild(mTMXLayer1); return scene; } }
代码下载链接 http://mail.sina.com.cn/netdisk/download.php?id=613fdf6ff09d6966e87d3d5d2b970e18d9
参考至 http://www.apkbus.com/forum.php?mod=viewthread&tid=140144