国产探花免费观看_亚洲丰满少妇自慰呻吟_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},



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 康乐县| 武平县| 尖扎县| 神木县| 英吉沙县| 禹城市| 前郭尔| 内黄县| 临泽县| 西城区| 乌鲁木齐县| 钦州市| 西城区| 六盘水市| 图木舒克市| 长丰县| 奉贤区| 越西县| 西充县| 龙泉市| 南江县| 平陆县| 清新县| 和硕县| 巩义市| 巴中市| 茌平县| 温州市| 上饶县| 景德镇市| 汤阴县| 贵州省| 三门县| 孟村| 托克逊县| 东阳市| 新密市| 长乐市| 莱州市| 东阳市| 盐津县|