【发布时间】:2012-11-10 00:30:19
【问题描述】:
我现在有一个数组,
static int[][] map = new int[WIDTH][HEIGHT];
此代码在地图上放置图块:
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;
}
}
}
如何转换此代码以将数组映射替换为二维数组列表,以便像我的世界一样移除这些图块?
【问题讨论】:
-
是的,所以我可以添加和删除图块。我不必这样做吗?或者我应该使用数组进行渲染,然后使用数组列表来访问它们?老实说,我很困惑......
-
为什么这些是循环,如果只运行一次:
for (int y = 18; y < 19; y++) {和for (int y = 19; y < 20; y++) {? 您可以直接使用索引。 例如只有一个循环为:for (int x = 0; x < WIDTH; x++) { map[x][18] = GRASS; } -
@YogendraSingh 哦,是的,我想我可以,感谢您指出这一点!