所以完整代码是什么样的
时间: 2024-02-22 09:59:56 浏览: 21
以下是修改后的完整代码,你可以直接复制粘贴运行看效果:
```
ArrayList<Obstacle> obstacles = new ArrayList<Obstacle>();
float obstacle_speed = 3;
float obstacle_gap = 200;
float obstacle_min_height = 50;
float obstacle_max_height = 300;
float obstacle_min_width = 20;
float obstacle_max_width = 50;
class Obstacle {
float x, y, width, height, speed;
boolean isTop;
Obstacle(float x_, float y_, float w_, float h_, float s_, boolean isTop_) {
x = x_;
y = y_;
width = w_;
height = h_;
speed = s_;
isTop = isTop_;
}
void update() {
x -= speed;
if (isTop) {
y += speed;
} else {
y -= speed;
}
}
void draw() {
noStroke();
if (isTop) {
fill(293, 224, 225); // 上方障碍物的颜色
rect(x, y, width, height);
} else {
fill(293, 224, 225); // 下方障碍物的颜色
rect(x, y, width, height);
}
}
}
void setup() {
size(1000, 500);
colorMode(HSB);
rectMode(CORNER);
generateObstacle();
}
void draw() {
background(114, 65, 73);
for (Obstacle o : obstacles) {
o.update();
o.draw();
}
if (obstacles.size() > 0 && obstacles.get(0).x + obstacles.get(0).width < 0) {
obstacles.remove(0);
}
if (obstacles.size() == 0 || obstacles.get(obstacles.size()-1).x + obstacles.get(obstacles.size()-1).width < width - obstacle_gap) {
generateObstacle();
}
}
void generateObstacle() {
float obstacle_height = random(obstacle_min_height, obstacle_max_height);
float obstacle_width = random(obstacle_min_width, obstacle_max_width);
float obstacle_gap_y = random(100, height - obstacle_height - 100); // 通路的高度为 100
float obstacle_top_y = 0;
float obstacle_bottom_y = obstacle_gap_y + 100; // 通路的高度为 100
float obstacle_x = width;
obstacles.add(new Obstacle(obstacle_x, obstacle_top_y, obstacle_width, obstacle_height, obstacle_speed, true)); // 上方的障碍物
obstacles.add(new Obstacle(obstacle_x, obstacle_bottom_y, obstacle_width, height - obstacle_bottom_y, obstacle_speed, false)); // 下方的障碍物
}
```
希望能帮到你。