我现在有一个数组,
static int[][] map = new int[WIDTH][HEIGHT];
此代码在 map 上放置图 block :
for (int y = 18; y < HEIGHT; y++) {
for (int x = 0; x < WIDTH; x++) {
map[x][y] = STONE;
}
}
for (int y = 18; y < 19; y++) {
for (int x = 0; x < WIDTH; x++) {
map[x][y] = GRASS;
}
}
for (int y = 19; y < 20; y++) {
for (int x = 0; x < WIDTH; x++) {
map[x][y] = DIRT;
}
}
下面是我如何渲染它们:
for (int x = 0; x < WIDTH; x++) {
for (int y = 0; y < HEIGHT; y++) {
switch (map[x][y]) {
case CLEAR:
air.draw(x * TILE_SIZE, y * TILE_SIZE, TILE_SIZE, TILE_SIZE);
break;
case STONE:
stone.draw(x * TILE_SIZE, y * TILE_SIZE, TILE_SIZE, TILE_SIZE);
break;
case GRASS:
grass.draw(x * TILE_SIZE, y * TILE_SIZE, TILE_SIZE, TILE_SIZE);
break;
case DIRT:
dirt.draw(x * TILE_SIZE, y * TILE_SIZE, TILE_SIZE, TILE_SIZE);
break;
}
}
}
如何转换此代码以用二维数组列表替换数组映射,这样我就可以像我的世界一样删除这些图 block ?
最佳答案
尝试
ArrayList<ArrayList<Integer>> map = new ArrayList<ArrayList<Integer>>();
基本上,您创建的是数组列表的数组列表,而数组列表又是整数列表。
关于java - 二维数组图 block 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13317979/