消灭星星内部数组下落和向左考齐代码
时间: 2024-03-14 21:46:38 浏览: 138
消灭星星是一款经典的小游戏,主要是通过消除相同颜色的星星来得分。下面是该游戏中实现星星下落和向左移动的代码:
星星下落:
```
for (int i = 0; i < ROWS - 1; i++) {
for (int j = 0; j < COLS; j++) {
if (blocks[i][j] == NULL && blocks[i+1][j] != NULL) {
blocks[i][j] = blocks[i+1][j];
blocks[i+1][j] = NULL;
blocks[i][j]->moveTo(blocks[i][j]->posX, i * BLOCK_SIZE);
}
}
}
```
该代码中,`blocks` 是一个 `Block*` 类型的二维数组,表示游戏区域中的所有方块。`BLOCK_SIZE` 是方块的大小,`ROWS` 和 `COLS` 分别表示游戏区域的行数和列数。该代码通过遍历游戏区域中的所有方块,如果上面的方块为空,下面的方块不为空,则将下面的方块移动到上面的位置,实现了方块的下落。
星星向左移动:
```
for (int i = 0; i < ROWS; i++) {
for (int j = 1; j < COLS; j++) {
if (blocks[i][j] != NULL && blocks[i][j-1] == NULL) {
blocks[i][j-1] = blocks[i][j];
blocks[i][j] = NULL;
blocks[i][j-1]->moveTo((j-1) * BLOCK_SIZE, blocks[i][j-1]->posY);
}
}
}
```
该代码中,与上面的代码类似,也是通过遍历游戏区域中的所有方块,如果左边的方块为空,右边的方块不为空,则将右边的方块移动到左边的位置,实现了方块的向左移动。
阅读全文