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

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

?? heightmap.java

?? 一個j2me的3d游戲實例
?? JAVA
字號:
package game.terrain;

import java.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.m3g.*;

public class HeightMap
{

    private short[] heightMap;
    private int[] data;
    private int imgw, imgh;
    private int average = 0;
    
    private int mapWidth;
    private int mapHeight;
    
    private Mesh[][] map;
    
    private final int waterAppID = 0;
    private final int grassAppID = 1;
    private final int roadAppID  = 2;
    private final int sandAppID  = 3;
    
    private Appearance app[] ;
    
    private Group group = new Group();
    
    int factor ;
    int xTrans ;
    int zTrans ;
    public HeightMap(String imageName, float resolution, int waterLevel) throws IOException
    {    
        if(resolution <= 0.0001f || resolution > 1.0f)
            throw new IllegalArgumentException("Resolution too small or too large");
                
        app = new Appearance[4];
        app[waterAppID] = MeshFactory.makeAppearance("/res/water.png");
        app[grassAppID] = MeshFactory.makeAppearance("/res/grass.png");
        app[roadAppID] = MeshFactory.makeAppearance("/res/road.png");
        app[sandAppID] = MeshFactory.makeAppearance("/res/sand.png");
        
        loadImage(imageName, resolution);
        
        setTerrainParameter(resolution);
        
        createQuads();        
    }
    
    private void setTerrainParameter(float resolution)
    {
        factor = (int) (1 / resolution);
        
        xTrans = ( mapWidth * factor ) / 2;
        zTrans = ( mapHeight * factor ) / 2;
    }
    
    private void createQuads()
    {
        map = new Mesh[mapWidth][mapHeight];
        short[] heights = new short[4];
        
        for(int x = 0; x < (mapWidth - 1); x++)
        {
            for(int y = 0; y < (mapHeight - 1); y++)
            {
                setQuadHeights(heights, x, y, mapWidth);
                
                //根據平均高度的不同決定使用不同的紋理
                if( average == 0 )
                {
                	map[x][y] = MeshFactory.createQuad(heights, PolygonMode.CULL_NONE, factor * x, factor * y, factor, xTrans,zTrans,app[waterAppID] );
                }
                else if( 1 <= average && average <= 4 )
                {
                	map[x][y] = MeshFactory.createQuad(heights, PolygonMode.CULL_NONE, factor * x, factor * y, factor, xTrans,zTrans,app[grassAppID] );
                }else if( 4 < average && average <= 10)
                {
                   	map[x][y] = MeshFactory.createQuad(heights, PolygonMode.CULL_NONE, factor * x, factor * y, factor, xTrans,zTrans,app[sandAppID] );
                }
                group.addChild(map[x][y]);                
            }
        }
    }

    
    private void setQuadHeights(short[] heights, int x, int y, int scanline)
    {
    	
        heights[0] = heightMap[x + y * scanline];
        heights[1] = heightMap[x + y * scanline + 1];
        heights[3] = heightMap[x + (y + 1) * scanline];
        heights[2] = heightMap[x + (y + 1) * scanline + 1];
        average = 0;
        average = (heights[0] + heights[1] + heights[2] + heights[3]) / 4;
        
    }

    private void loadImage(String path, float res) throws IOException
    {        
        Image img = Image.createImage(path);
        
        data = new int[img.getWidth() * img.getHeight()];
        
        img.getRGB(data, 0, img.getWidth(), 0, 0, img.getWidth(), img.getHeight());
        
        imgw = img.getWidth();
        imgh = img.getHeight();
        
        img = null;
        System.gc();
        
        mapWidth = (int)(res * imgw);
        mapHeight = (int)(res * imgh);
        
        heightMap = new short[mapWidth * mapHeight];
        
        int xoff = imgw / mapWidth;
        int yoff = imgh / mapHeight;
        
        for(int y = 0; y < mapHeight; y++)
        {
            for(int x = 0; x < mapWidth; x++)
            {   
            	heightMap[x + y * mapWidth] = (short)((data[x * xoff + y * yoff * imgw] & 0x000000ff) / 30);
            }
        }
     
        data = null;
        img = null;
        System.gc();
    }
    
    public Group getTerrainGroup()
    {
    	return group;    	
    }    
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一级二级三级在线免费观看| 26uuu另类欧美| 一本大道av一区二区在线播放| 国产福利一区二区三区视频| 石原莉奈在线亚洲二区| 五月开心婷婷久久| 日韩精品国产欧美| 精品一区二区综合| 国产呦萝稀缺另类资源| 国产成人免费av在线| 91亚洲精品一区二区乱码| 972aa.com艺术欧美| 欧美在线综合视频| 91精品国产91热久久久做人人| 这里只有精品99re| 精品国产不卡一区二区三区| 久久综合狠狠综合| 国产精品国产成人国产三级| 久久久久九九视频| 亚洲欧美日韩国产成人精品影院 | 国产亚洲欧美中文| 国产精品色呦呦| 日韩码欧中文字| 亚洲成人综合在线| 黄色成人免费在线| 91免费版pro下载短视频| 色狠狠av一区二区三区| 日韩视频免费观看高清完整版| 久久久不卡影院| 亚洲精品日产精品乱码不卡| 日韩精品电影在线| 顶级嫩模精品视频在线看| 一本到不卡免费一区二区| 在线观看91精品国产麻豆| 精品动漫一区二区三区在线观看| 中文字幕中文字幕在线一区 | 日韩一区二区三区视频| 久久久久久免费| 依依成人精品视频| 久久国产精品无码网站| 91久久精品一区二区三区| 精品日韩成人av| 亚洲激情中文1区| 国产精品一区二区在线观看网站| 一本色道久久综合亚洲精品按摩| 日韩三级在线观看| 亚洲综合一区二区| 国产美女一区二区| 91精品国产综合久久久蜜臀图片| 中文字幕第一区综合| 免费亚洲电影在线| 色94色欧美sute亚洲13| 国产欧美一区二区精品性| 爽好久久久欧美精品| 91一区一区三区| 国产精品丝袜黑色高跟| 狠狠色伊人亚洲综合成人| 欧美三级在线视频| 亚洲啪啪综合av一区二区三区| 国产一区二区三区精品视频| 欧美另类变人与禽xxxxx| 亚洲色图在线播放| 成人av中文字幕| 久久久av毛片精品| 黄色日韩网站视频| 精品久久免费看| 久久99久久久欧美国产| 欧美三级电影网| 亚洲一区二区四区蜜桃| 91视频国产资源| 亚洲日本一区二区三区| 99久久伊人久久99| 国产精品黄色在线观看| bt欧美亚洲午夜电影天堂| 久久久久久综合| 成人动漫一区二区三区| 国产精品蜜臀在线观看| 成人教育av在线| 国产精品久久久久久久久图文区 | 91丨porny丨国产| 中文字幕佐山爱一区二区免费| gogogo免费视频观看亚洲一| 国产丝袜美腿一区二区三区| 国产乱人伦偷精品视频不卡 | 99久久久国产精品| 日韩一区有码在线| 欧美亚洲国产bt| 日韩经典中文字幕一区| 欧美一级日韩一级| 国产一区二区三区高清播放| 久久精品一区二区三区av| 成人一区二区三区| 亚洲精品久久久久久国产精华液| 欧美亚洲综合另类| 久久超碰97中文字幕| 久久久久久久久一| 色就色 综合激情| 亚洲成a天堂v人片| 久久亚区不卡日本| 91蜜桃在线观看| 美女视频一区二区三区| 亚洲国产精品v| 欧美自拍偷拍一区| 国产美女娇喘av呻吟久久| 国产精品久久久久9999吃药| 欧美日韩亚州综合| 国产一区二区看久久| 亚洲欧美日韩电影| 在线不卡欧美精品一区二区三区| 久久aⅴ国产欧美74aaa| 17c精品麻豆一区二区免费| 精品视频免费看| 风间由美中文字幕在线看视频国产欧美| 国产精品福利影院| 日韩精品一区二区三区中文不卡 | 色女孩综合影院| 久久黄色级2电影| 亚洲天堂av一区| 久久青草国产手机看片福利盒子 | 奇米精品一区二区三区在线观看| 久久久久久久精| 欧美久久一区二区| 成人免费三级在线| 久久精品国产成人一区二区三区| 亚洲男人的天堂在线观看| 久久综合久久久久88| 欧美日韩在线播放一区| 成人一区二区三区视频| 日本亚洲电影天堂| 一区二区三区欧美久久| 久久久久亚洲蜜桃| 日韩欧美亚洲一区二区| 欧美在线|欧美| 99久久免费精品高清特色大片| 激情五月婷婷综合| 蜜臀av性久久久久蜜臀aⅴ| 亚洲国产精品嫩草影院| 国产精品久久久久久久久晋中 | 国产拍欧美日韩视频二区| 91精品国产乱| 欧美日韩不卡一区二区| 色菇凉天天综合网| 成人精品电影在线观看| 国产黄色精品视频| 国产一区二区三区电影在线观看| 日本亚洲免费观看| 日韩国产高清影视| 日本成人中文字幕在线视频| 亚洲无线码一区二区三区| 亚洲免费成人av| 亚洲欧美日韩一区二区三区在线观看| 国产三级一区二区| 中文字幕av一区二区三区免费看 | 亚洲三级电影全部在线观看高清| 日本一二三四高清不卡| 久久综合色之久久综合| 欧美日韩国产影片| 日韩午夜激情av| 9191成人精品久久| 日韩午夜电影av| 久久久噜噜噜久久人人看| 久久一夜天堂av一区二区三区| 精品国产不卡一区二区三区| 久久嫩草精品久久久久| 大尺度一区二区| 欧美日韩电影在线播放| 久久精品亚洲乱码伦伦中文| 亚洲午夜久久久久中文字幕久| 久久99热国产| 91精品办公室少妇高潮对白| 精品少妇一区二区三区日产乱码| 亚洲精品自拍动漫在线| 国模一区二区三区白浆| 欧美区在线观看| 夜夜揉揉日日人人青青一国产精品 | 日韩中文字幕区一区有砖一区| 北条麻妃一区二区三区| 精品88久久久久88久久久| 午夜在线成人av| 一本高清dvd不卡在线观看| 国产精品久久久久久亚洲伦| 亚洲视频一区二区在线| 一区二区三区中文字幕精品精品 | 在线综合亚洲欧美在线视频| 中文字幕在线观看一区二区| 精品一二线国产| 欧美日韩国产影片| 亚洲精品写真福利| 99riav一区二区三区| 国产色91在线| 国产一区二区三区免费| 日韩视频永久免费| 日本 国产 欧美色综合| 777亚洲妇女| 五月天久久比比资源色| 欧美三级日韩三级| 亚洲bt欧美bt精品777| 欧美综合色免费| 亚洲成a人片在线观看中文| 欧洲一区二区三区在线|