用processing写下雨效果
时间: 2023-08-13 08:06:30 浏览: 34
下面是一个简单的processing雨效果:
```java
int dropsCount = 100; // 雨滴数量
float[] dropsX = new float[dropsCount]; // 雨滴x坐标
float[] dropsY = new float[dropsCount]; // 雨滴y坐标
float[] dropsSpeed = new float[dropsCount]; // 雨滴速度
void setup() {
size(400, 400);
for (int i = 0; i < dropsCount; i++) {
dropsX[i] = random(width); // 随机x坐标
dropsY[i] = random(-height, 0); // 随机y坐标
dropsSpeed[i] = random(2, 10); // 随机速度
}
}
void draw() {
background(255);
stroke(200, 200, 255, 100); // 设置雨滴颜色和透明度
strokeWeight(2); // 设置雨滴粗细
for (int i = 0; i < dropsCount; i++) {
line(dropsX[i], dropsY[i], dropsX[i], dropsY[i] + 10); // 画雨滴
dropsY[i] += dropsSpeed[i]; // 更新雨滴位置
if (dropsY[i] > height) { // 如果雨滴超出屏幕,重新设置位置和速度
dropsX[i] = random(width);
dropsY[i] = random(-height, 0);
dropsSpeed[i] = random(2, 10);
}
}
}
```
解释:
- `dropsCount`:雨滴数量。
- `dropsX` 和 `dropsY`:每个雨滴的位置。
- `dropsSpeed`:每个雨滴的速度。
- `setup()`:初始化每个雨滴的位置和速度。
- `draw()`:循环画每个雨滴。
- `stroke()`:设置雨滴颜色和透明度。
- `strokeWeight()`:设置雨滴粗细。
- `line(x1, y1, x2, y2)`:画一条线段,模拟雨滴。
- `random(min, max)`:获取一个[min, max)之间的随机数。
- 判断雨滴是否超出屏幕,如果是,重新设置位置和速度。
你可以根据需要修改这些值来调整雨效果的数量、颜色、速度等。