检查其他部分的代码是否影响了障碍物的显示,如果有请修改
时间: 2024-10-18 10:03:18 浏览: 18
代码中负责显示障碍物的部分是在 `draw_snake()` 函数内,该函数不仅绘制蛇还绘制了障碍物。从提供的代码来看,并没有明显的错误会导致障碍物无法正常显示。但是为了确保万无一失,可以将绘制障碍物的部分独立出来,避免在进行其它对象的绘制操作时对其造成影响。
以下是调整后的 `draw_snake()` 和新增的 `draw_barrier()` 方法:
原 `draw_snake()` 方法中关于绘制障碍物的部分移除:
```c
void draw_snake() {
draw_Wall();
for (int i = 0; i < len; i++) {
...
}
if (food_exist) {
draw_food();
}
// 移除了绘制障碍物的部分
}
```
添加新的 `draw_barrier()` 方法用于单独绘制障碍物:
```c
void draw_barrier() {
for (int i = 1; i < Width - 1; i++) {
for (int j = 1; j < Height - 1; j++) {
if (grid[j][i] == Barrier) {
PIMAGE img = newimage();
getimage(img, "Barrier.png");
putimage(i * Interval, j * Interval, img);
delimage(img);
}
}
}
}
```
然后,在 `begin_game()` 循环里调用这个新方法:
```c
while (is_run()) {
...
draw_snake();
draw_barrier(); // 调用新的方法来绘制障碍物
...
}
```
这样,`draw_snake()` 方法专注于绘制蛇本身和边界,而 `draw_barrier()` 单独处理障碍物的绘制逻辑,使得整个绘图流程更加清晰且相互之间不会产生干扰。
阅读全文