亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mappymapreader.java

?? tiled地圖編輯器是2d的,很不錯的國外軟件,使用起來很方便的
?? JAVA
字號:
/* *  Mappy Plugin for Tiled, (c) 2004-2006 * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  Adam Turk <aturk@biggeruniverse.com> *  Bjorn Lindeijer <b.lindeijer@xs4all.nl> */package tiled.plugins.mappy;import java.io.*;import java.util.LinkedList;import java.util.Properties;import java.util.Vector;import java.util.Iterator;import tiled.io.MapReader;import tiled.io.PluginLogger;import tiled.core.*;/** * @version $Id: MappyMapReader.java 683 2006-06-25 14:17:37Z bjorn $ */public class MappyMapReader implements MapReader{    private LinkedList chunks;    private Vector blocks;    private static final int BLKSTR_WIDTH = 32;    private int twidth, theight;    private PluginLogger logger;    public static class BlkStr {        public BlkStr() {        }        public long bg,fg0,fg1,fg2;        public long user1, user2;         // user long data        public int user3, user4;          // user short data        public int user5, user6, user7;   // user byte data        public int bits;                  // collision and trigger bits    }    /**     * Loads a map from a file.     *     * @param filename the filename of the map file     */    public Map readMap(String filename) throws Exception {        return readMap(new FileInputStream(filename));    }    public Map readMap(InputStream in) throws Exception {        Map ret = null;        chunks = new LinkedList();        blocks = new Vector();        byte[] hdr = new byte[4];        in.read(hdr);        long size = Util.readLongReverse(in);        in.read(hdr);        try {            Chunk chunk = new Chunk(in);            while (chunk.isGood()) {                chunks.add(chunk);                chunk = new Chunk(in);            }        } catch (IOException ioe) {}        // now build a Tiled map...        Chunk c = findChunk("MPHD");        if (c != null) {            ret = readMPHDChunk(c.getInputStream());        } else {            throw new IOException("No MPHD chunk found!");        }        c = findChunk("BODY");        if (c != null) {            readBODYChunk(ret, c.getInputStream());        } else {            throw new IOException("No BODY chunk found!");        }        return ret;    }    /**     * Loads a tileset from a file.     *     * @param filename the filename of the tileset file     */    public TileSet readTileset(String filename) throws Exception {        logger.error("Tilesets aren't supported!");        return null;    }    public TileSet readTileset(InputStream in) {    	logger.error("Tilesets aren't supported!");        return null;    }    /**     * @see tiled.io.PluggableMapIO#getFilter()     */    public String getFilter() throws Exception {        return "*.fmp";    }    public String getPluginPackage() {        return "Mappy input plugin";    }    public String getDescription() {        return "+---------------------------------------------+\n" +               "|      An experimental reader for Mappy       |\n" +               "|                 FMAP v0.36                  |\n" +               "|            (c) Adam Turk 2004               |\n" +               "|          aturk@biggeruniverse.com           |\n" +               "|                                             |\n" +               "| Currently unsupported:                      |\n" +               "|  * Animated tiles                           |\n" +               "|  * The ATHR block                           |\n" +               "|  * Collision bits on BLKSTR structures      |\n" +               "|  * bitdepths other than 16bit               |\n" +               "|  * object layers                            |\n" +               "+---------------------------------------------+";    }    public String getName() {        return "Mappy Reader";    }    public boolean accept(File pathname) {        try {            String path = pathname.getCanonicalPath().toLowerCase();            if (path.endsWith(".fmp")) {                return true;            }        } catch (IOException e) {}        return false;    }    public void setLogger(PluginLogger logger) {        this.logger = logger;    }    private Chunk findChunk(String header) {        Iterator itr = chunks.iterator();        while (itr.hasNext()) {            Chunk c = (Chunk)itr.next();            if (c.equals(header)) {                return c;            }        }        return null;    }    private Map readMPHDChunk(InputStream in) throws IOException {        Map ret = null;        TileSet set = new TileSet();        int major, minor;        major = in.read();        minor = in.read();        in.skip(2); // skip lsb and reserved bytes - always msb        ret = new Map(Util.readShort(in), Util.readShort(in));        Properties retProps = ret.getProperties();        ret.setOrientation(Map.MDO_ORTHO);        //be sure to set the orientation!        retProps.setProperty("(s)fmap reader", "Don't modify properties marked (s) unless you really know what you're doing.");        retProps.setProperty("version", "" + major + "." + minor);        in.skip(4); // reserved        twidth = Util.readShort(in);        theight = Util.readShort(in);        ret.setTileWidth(twidth);        ret.setTileHeight(theight);        set.setName("Static tiles");        ret.addTileset(set);        int depth = Util.readShort(in);        if (depth < 16) {            throw new                IOException("Tile bitdepths less than 16 are not supported!");        }        retProps.setProperty("(s)depth", String.valueOf(depth));        in.skip(2);        int numBlocks = Util.readShort(in);        int numBlocksGfx = Util.readShort(in);        Chunk c = findChunk("BKDT");        if(c == null) {            throw new IOException("No BKDT block found!");        }        MapLayer ml = new TileLayer(ret, ret.getWidth(),ret.getHeight());        ml.setName("bg");        ret.addLayer(ml);        for(int i=1;i<7;i++) {            //TODO: I believe this should be ObjectGroup            ml = new ObjectGroup(ret, 0, 0);            ml.setName("ObjectLayer " + i);            ret.addLayer(ml);        }        ml = new TileLayer(ret, ret.getWidth(),ret.getHeight());        ml.setName("fg 1");        ret.addLayer(ml);        ml = new TileLayer(ret, ret.getWidth(),ret.getHeight());        ml.setName("fg 2");        ret.addLayer(ml);        ml = new TileLayer(ret, ret.getWidth(),ret.getHeight());        ml.setName("fg 3");        ret.addLayer(ml);        readBKDTChunk(ret, c.getInputStream(), numBlocks);        c = findChunk("BGFX");        if(c != null) {            readBGFXChunk(ret, c.getInputStream(), numBlocksGfx);        }else{            throw new IOException("No BGFX chunk found!");        }        logger.debug(ret.toString());        return ret;    }    private void readATHRChunk(Map m, InputStream in) {    }    private void readBKDTChunk(Map m, InputStream in, int num) throws IOException {    	logger.debug("Reading " + num + " blocks...");        for (int i = 0; i < num; i++) {            blocks.add(readBLKSTR(in));        }    }    /**     *  Read a BODY chunk from a Mappy map. BODY chunks contain data for     * the 4 main layers of the map.     *     * @param m     * @param in     * @throws IOException     */    private void readBODYChunk(Map m, InputStream in) throws IOException {        TileSet set = (TileSet)m.getTilesets().get(0);        TileLayer bg = (TileLayer)m.getLayer(0),                  fg0 = (TileLayer)m.getLayer(7),                  fg1 = (TileLayer)m.getLayer(8),                  fg2 = (TileLayer)m.getLayer(9);        for (int i = 0; i < m.getHeight(); i++) {            for (int j = 0; j < m.getWidth(); j++) {                int block = (Util.readShort(in) & 0x00FF) / BLKSTR_WIDTH;                //System.out.print("" + block);                BlkStr blk = (BlkStr)blocks.get(block);                //System.out.println("bg: " + blk.bg);                bg.setTileAt(j,i, set.getTile((int)blk.bg));                fg0.setTileAt(j,i, set.getTile((int)blk.fg0));                fg1.setTileAt(j,i, set.getTile((int)blk.fg1));                fg2.setTileAt(j,i, set.getTile((int)blk.fg2));            }            //System.out.println();        }    }    /**     * BGFX blocks are synonymous with {@link Tile}s     *     * @param m The Map to add Tiles to     * @param in     * @param num Number of Tiles to read     * @throws IOException     */    private void readBGFXChunk(Map m, InputStream in, int num) throws IOException {        TileSet set = (TileSet)m.getTilesets().get(0);        set.addTile(new Tile());        Util.readRawImage(in, twidth, theight);   // skip the null-tile        for (int i = 1; i < num; i++) {            Tile t = new Tile();            int image_id              = set.addImage(Util.readRawImage(in, twidth, theight));            //t.setAppearance(image_id, 0);            set.addTile(t);        }    }    private BlkStr readBLKSTR(InputStream in) throws IOException {        BlkStr ret = new BlkStr();        long widthMod = twidth * theight * 512;        ret.bg = Util.readLongReverse(in) / widthMod;        ret.fg0 = Util.readLongReverse(in) / widthMod;        ret.fg1 = Util.readLongReverse(in) / widthMod;        ret.fg2 = Util.readLongReverse(in) / widthMod;        ret.user1 = Util.readLongReverse(in);        ret.user2 = Util.readLongReverse(in);        ret.user3 = Util.readShort(in);        ret.user4 = Util.readShort(in);        ret.user5 = in.read();        ret.user6 = in.read();        ret.user7 = in.read();        ret.bits = in.read();        return ret;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91看片淫黄大片一级在线观看| 亚洲国产高清aⅴ视频| 日韩欧美在线影院| 国产精品五月天| 久久机这里只有精品| 欧美影院一区二区三区| 久久精品视频免费观看| 三级欧美韩日大片在线看| 91在线精品一区二区三区| 精品伦理精品一区| 日韩av在线发布| 欧美色图免费看| 国产精品免费aⅴ片在线观看| 图片区日韩欧美亚洲| 99久精品国产| 国产精品日日摸夜夜摸av| 免费看日韩精品| 欧美亚洲愉拍一区二区| 1000精品久久久久久久久| 国产一区二区免费视频| 67194成人在线观看| 亚洲最大成人网4388xx| 99久久久久免费精品国产| 国产日韩欧美一区二区三区综合| 日日夜夜免费精品视频| 欧美日韩一级黄| 一卡二卡三卡日韩欧美| 91麻豆6部合集magnet| 欧美激情一区不卡| 风间由美中文字幕在线看视频国产欧美| 777色狠狠一区二区三区| 水蜜桃久久夜色精品一区的特点| 色婷婷久久久综合中文字幕| 中文字幕一区在线| 99这里只有久久精品视频| 日韩毛片在线免费观看| 91视频精品在这里| 亚洲三级理论片| 欧美视频在线观看一区二区| 亚洲综合免费观看高清完整版| 色悠悠亚洲一区二区| 亚洲在线观看免费视频| 欧美美女视频在线观看| 午夜欧美视频在线观看| 91精品国产综合久久小美女| 美女国产一区二区三区| 精品999久久久| 成人性生交大片免费| 亚洲欧美日韩小说| 欧美日本在线看| 久久99国产精品麻豆| 国产欧美一区二区三区沐欲| 成人黄色av电影| 夜夜嗨av一区二区三区四季av| 欧美日韩在线不卡| 久久精品国产一区二区三区免费看| 欧美大白屁股肥臀xxxxxx| 国内精品写真在线观看| 国产精品成人在线观看| 欧美日韩日日骚| 久久av资源网| 亚洲私人影院在线观看| 91精品国产综合久久精品麻豆| 美女在线视频一区| 国产精品美女久久久久av爽李琼| 欧美艳星brazzers| 国产一区欧美二区| 亚洲免费观看高清| 精品日本一线二线三线不卡 | 国产欧美一区二区三区沐欲| 99久久精品免费看| 日本亚洲免费观看| 国产精品久久久爽爽爽麻豆色哟哟 | 国产欧美日韩精品一区| 91麻豆国产精品久久| 精品一区二区影视| 亚洲美女视频在线观看| 精品国产乱码久久久久久免费| 91网站在线播放| 激情五月激情综合网| 亚洲色图欧美偷拍| 国产三级精品三级| 欧美久久高跟鞋激| 99热这里都是精品| 国产原创一区二区三区| 亚洲图片欧美色图| 亚洲欧洲精品天堂一级| 精品国产乱码久久久久久浪潮| 色婷婷综合久久| 成人av高清在线| 国模大尺度一区二区三区| 亚洲国产欧美在线| 亚洲三级在线免费| 国产精品无圣光一区二区| 精品日韩欧美在线| 69久久夜色精品国产69蝌蚪网| 色系网站成人免费| a亚洲天堂av| 成人一区二区视频| 国产高清精品久久久久| 久久丁香综合五月国产三级网站| 亚洲一区二区成人在线观看| 日韩美女视频一区二区| 中文字幕在线观看一区二区| 久久亚洲欧美国产精品乐播| 日韩一级黄色片| 3d成人动漫网站| 7777精品伊人久久久大香线蕉最新版 | 91精品国产综合久久福利软件 | 99久久亚洲一区二区三区青草| 国产主播一区二区| 九色综合狠狠综合久久| 日本欧美肥老太交大片| 蜜臀久久99精品久久久久宅男| 五月婷婷激情综合| 午夜精品久久久久久久久| 午夜精品成人在线视频| 亚洲国产aⅴ成人精品无吗| 一区二区三区四区中文字幕| 亚洲另类一区二区| 亚洲一区二区五区| 亚洲国产成人av网| 青青草精品视频| 六月丁香婷婷久久| 精品影院一区二区久久久| 久久不见久久见中文字幕免费| 精东粉嫩av免费一区二区三区| 蜜臀久久99精品久久久久宅男| 国内精品国产成人| 成人性生交大片免费看中文| 99免费精品在线| 欧美三级一区二区| 欧美一区二区三区视频免费 | 欧美丰满嫩嫩电影| 日韩精品一区二区三区中文精品 | 亚洲一二三专区| 日韩中文字幕不卡| 精彩视频一区二区三区| 成人av中文字幕| 在线一区二区视频| 日韩三级中文字幕| 欧美国产综合一区二区| 亚洲国产日韩在线一区模特| 美女性感视频久久| 99久久伊人精品| 日韩欧美中文一区| 亚洲欧洲日韩综合一区二区| 亚洲一二三四区| 韩国欧美一区二区| 在线观看一区二区视频| 精品国产露脸精彩对白| 亚洲视频一二三区| 美国毛片一区二区| 99久久综合精品| 777久久久精品| 国产精品美女久久久久高潮| 天天影视网天天综合色在线播放| 国产尤物一区二区| 欧美主播一区二区三区美女| 精品国产乱码久久久久久老虎| 亚洲欧美电影一区二区| 国产一区二三区好的| 在线一区二区视频| 日本一区二区三区久久久久久久久不 | 亚洲国产成人av好男人在线观看| 国产精一品亚洲二区在线视频| aaa欧美色吧激情视频| 91精品福利在线一区二区三区| 国产精品久久久一区麻豆最新章节| 蜜臀av国产精品久久久久| 在线观看日韩毛片| 国产精品不卡一区二区三区| 日韩激情av在线| 色狠狠色噜噜噜综合网| 国产亚洲精品久| 日本成人在线不卡视频| 一本色道**综合亚洲精品蜜桃冫| 久久久久久免费毛片精品| 天天色天天操综合| 色94色欧美sute亚洲13| 国产精品无人区| 国产成人啪午夜精品网站男同| 欧美久久一二三四区| 亚洲国产日韩av| 在线观看不卡一区| 亚洲日本免费电影| bt7086福利一区国产| 国产网红主播福利一区二区| 久久66热re国产| 精品美女在线观看| 麻豆国产欧美一区二区三区| 91麻豆精品国产自产在线| 五月天精品一区二区三区| 欧美午夜不卡视频| 亚洲午夜精品17c| 欧美日韩国产综合一区二区| 一区二区激情视频| 欧美日韩精品免费观看视频| 亚洲va中文字幕| 91精品欧美综合在线观看最新|