【发布时间】:2014-01-07 19:58:26
【问题描述】:
所以我在画布中制作了一个网格游戏,如果选择了一个方块,它周围的相同颜色的方块也会被选中,当点击方块时,选定的方块会爆裂,新的方块会掉下来。
我制作的网格是 9 行 15 列 -
tile_array = [[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]];
我正在用随机颜色的瓷砖填充网格。 这是我的悬停功能 -
function over_tile(our_tile) {//, pointer
our_tile.alpha = 0.5;
if (our_tile.tile_row > 0) { // top row availiable
top_tile = this.tile_array[our_tile.tile_row-1][our_tile.tile_column];
if (top_tile.tile_color == our_tile.tile_color) {
this.over_tile(top_tile);
};
};
if (our_tile.tile_column < 14) { // right column availiable
right_tile = this.tile_array[our_tile.tile_row][our_tile.tile_column+1];
if (right_tile.tile_color == our_tile.tile_color) {
this.over_tile(right_tile);
};
};
if (our_tile.tile_column > 0) { // left column availiable
left_tile = this.tile_array[our_tile.tile_row][our_tile.tile_column-1];
if (left_tile.tile_color == our_tile.tile_color) {
this.over_tile(left_tile);
};
};
if (our_tile.tile_row < 8) { // bottom row availiable
bottom_tile = this.tile_array[our_tile.tile_row+1][our_tile.tile_column];
if (bottom_tile.tile_color == our_tile.tile_color) {
this.over_tile(bottom_tile);
};
};
}
现在我面临的问题是上面创建了一个调用堆栈大小超出错误。 但是在函数中,如果我注释掉部分并尝试一些变化是有效的 -
- 左列底行
- 左列顶行
- 右列,底行
- 右列,顶行
这些都在制造错误 -
- 左栏,右栏
- 顶行,底行
并且任何三个或所有组合都不能一起工作,并且每个组合都在单独工作。我似乎无法找出问题所在。
【问题讨论】:
标签: javascript html canvas