我想渲染一個平鋪的貼圖,每次遊戲運行時都會生成隨機貼圖。渲染瓷磚Java Libgdx
我有一個應該保存所有的瓷磚值,然後再以隨機改變的數組:
int[][] map = {
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,},
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,},
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,},
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,},
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,},
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,},
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,},
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,},
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,},
};
for (int x = 0; x < map.length; x++) {
for (int y = 0; y < map[x].length; y++) {
if(map[x][y] == 0){
switch(MathUtils.random(2)){
case 0:
map[x][y] = 0;
break;
case 1:
map[x][y] = 1;
break;
case 2:
map[x][y] = 2;
break;
}
}
}
}
然後我按照使其什麼磚是:
public void render(float delta) {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
Gdx.gl.glClearColor(0f, 0f, 0f, 1f);
game.batch.begin();
for (int x = 0; x < map.length; x++) {
for (int y = 0; y < map[y].length; y++) {
if(map[x][y] == 1){
game.batch.draw(stone, x*120, y*120);
}
if(map[x][y] == 2){
game.batch.draw(grass, x*120, y*120);
}
if(map[x][y] == 0){
game.batch.draw(dirt, x*120, y*120);
}
}
}
問題:
- 所呈現的所有瓷磚爲二RT。
- 它確實減慢了一切。
不應該這是'映射[X]。長度;''中爲(INT Y = 0; Y <映射[Y]。長度; Y ++)''中的方法render'? – 2014-08-31 09:58:42
@ S1LENTWARRIOR是的,這是有道理的,但我只是改變了它,它反應了錯誤:線程「LWJGL應用程序」中的異常java.lang.ArrayIndexOutOfBoundsException:9 – user3165683 2014-08-31 10:02:37
在您的初始'地圖中放入一些'1'和'2' '。這將確定您的隨機展示位置或繪圖代碼中是否存在錯誤。 (一目瞭然,它應該*。*我的工作。另外,請檢查您的圖像加載代碼。也許你不加載正確的圖像。) – usr2564301 2014-08-31 10:29:23