国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用MIDP2.0開發游戲(4)改進的地圖生成方式

2019-11-17 06:27:36
字體:
來源:轉載
供稿:網友

上次我們用SPRite實現了背景,但是這樣不便于通過地圖數據生成地圖。通常,游戲中的地圖都被分成NxN的方格,一般僅有幾種圖案。幸運的是,SUN在MIDP 2.0已經考慮到了游戲開發者需要的這個功能,TiledLayer便是通過貼圖實現的層,它的使用同樣異常簡單!

首先預備好我們需要的小塊區域,在坦克大戰的地圖中,一共有下面5種:

使用MIDP2.0開發游戲(4)改進的地圖生成方式 (注重這是放大的jpg格式,你需要處理成40x8的png格式)

分別是冰面,磚塊,巖石,河流,樹木,具體有什么用玩過的肯定都知道,我就不多說了。

首先讀入Image:Image.createImage("/res/img/tile.png");

然后就可以創建TiledLayer了:new TiledLayer(4, 4, image, 8, 8);

前兩個參數指定NxN的方格數,后兩個參數指定方格大小(也不一定非得是方格),我們用8x8的大小,這樣讀入的40x8的png圖片便被分成了5個小塊,編號是1-5。為什么不從0開始編號?因為0是用來表示透明塊的。

下面定義一個二維數組,表示地圖數據:

int[][] map = new int[][] {
    {0, 0, 1, 4},
    {1, 1, 2, 4},
    {0, 1, 2, 4},
    {0, 1, 1, 3},
};

最后用TiledLayer.setCell(col, row, index);就給每個小塊貼上對應的圖片。假如index為0,則該小塊是透明的。

OK,我們把上次的spriteBackground改成layerBackground:

public class TankGameCanvas extends GameCanvas implements Runnable {
    ...
    private TiledLayer layerBackground;

    // ConstrUCtor and initialization
    public TankGameCanvas() {
        ...
        try {
            layerBackground = new TiledLayer(22, 22, Image.createImage("/res/img/tile.png"), 8, 8);
            int EMP = 0;
            int ICE = 1;
            int BRK = 2;
            int ROC = 3;
            int RIV = 4;
            int TRE = 5;
            // 地圖太大了!!!
            int[][] map = new int[][] { // 22X22
                {EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP},
                {EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP},
                {ROC, ROC, ROC, ROC, EMP, EMP, EMP, EMP, EMP, EMP, ICE, ICE, ICE, ICE, ICE, ICE, BRK, BRK, BRK, BRK, BRK, BRK},
                {ROC, ROC, ROC, ROC, EMP, EMP, EMP, EMP, EMP, EMP, ICE, ICE, ICE, ICE, ICE, ICE, BRK, BRK, BRK, BRK, BRK, BRK},



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 周宁县| 阜城县| 元朗区| 清水河县| 上蔡县| 青海省| 眉山市| 明溪县| 昌都县| 岳阳县| 建湖县| 南漳县| 富民县| 陇南市| 县级市| 桃园市| 樟树市| 通城县| 金门县| 镇康县| 博爱县| 库伦旗| 买车| 昌平区| 嘉义市| 孝感市| 涟水县| 吴桥县| 石楼县| 黑龙江省| 宁城县| 拉萨市| 元谋县| 华亭县| 商都县| 纳雍县| 金坛市| 多伦县| 朝阳县| 页游| 阿荣旗|