帮我写出新的Food类,然后在Snake。cpp实现相同功能int food_x; int food_y; food_x = rand() % 20; food_y = rand() % 30; body[food_x][food_y] = -2;
时间: 2024-03-19 20:46:23 浏览: 139
Snake.zip贪吃蛇的游戏开发
好的,以下是新的Food类的代码实现:
```c++
#include <iostream>
#include <random>
class Food {
public:
int x, y;
Food(int width, int height) {
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> disx(1, width - 2);
std::uniform_int_distribution<> disy(1, height - 2);
x = disx(gen);
y = disy(gen);
}
void place(int body[][30]) {
body[x][y] = -2;
}
};
```
然后在Snake.cpp文件中实现相同功能,可以将以下代码添加到Snake类的构造函数中:
```c++
food = new Food(width, height);
```
其中,width和height是游戏窗口的宽度和高度。然后在Snake类的渲染函数中,将以下代码添加到蛇的渲染代码之前:
```c++
food->place(body);
```
其中,body是存储蛇身体的二维数组。这样就可以在游戏中渲染出食物了。需要注意的是,在Snake类的析构函数中需要释放Food对象的内存:
```c++
delete food;
```
阅读全文