zoukankan      html  css  js  c++  java
  • 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 

  • 相关阅读:
    HDU 2433 Travel (最短路,BFS,变形)
    HDU 2544 最短路 (最短路,spfa)
    HDU 2063 过山车 (最大匹配,匈牙利算法)
    HDU 1150 Machine Schedule (最小覆盖,匈牙利算法)
    290 Word Pattern 单词模式
    289 Game of Life 生命的游戏
    287 Find the Duplicate Number 寻找重复数
    283 Move Zeroes 移动零
    282 Expression Add Operators 给表达式添加运算符
    279 Perfect Squares 完美平方数
  • 原文地址:https://www.cnblogs.com/wzachenjian/p/3556522.html
Copyright © 2011-2022 走看看