画布800*800,当鼠标按住时,在中间200上下像素限定范围内随机一直缓慢不停生成不同样式的白云,白云一直向里移动,越来越小,逐渐消失不见,当鼠标松开时,白云停止移动,停止生成白云,写一段Proceesing代码
时间: 2023-11-17 21:04:51 浏览: 100
好的,以下是一段实现你描述功能的 Processing 代码:
```processing
int cloudX, cloudY; // 白云的坐标
int cloudSize; // 白云的大小
boolean mousePressed; // 记录鼠标是否按下
void setup() {
size(800, 800);
}
void draw() {
background(0);
if (mousePressed && mouseY >= 300 && mouseY <= 500) { // 当鼠标按下时
cloudX += random(-2, 2); // 生成随机的白云位置
cloudY += random(-2, 2);
cloudSize -= 1; // 使白云逐渐消失
if (cloudSize < 0) {
cloudSize = 0;
}
}
fill(255, cloudSize); // 设置白云颜色和透明度
noStroke();
ellipse(cloudX, cloudY, cloudSize, cloudSize); // 绘制白云
if (!mousePressed) { // 当鼠标松开时,停止生成白云
cloudSize = 0;
}
}
void mousePressed() {
if (mouseY >= 300 && mouseY <= 500) { // 当鼠标按下时,记录鼠标状态和白云位置
mousePressed = true;
cloudX = 400;
cloudY = mouseY;
cloudSize = 100;
}
}
void mouseReleased() {
mousePressed = false; // 当鼠标松开时,记录鼠标状态
}
```
这段代码通过不断生成随机位置和逐渐缩小的白云实现了你描述的功能。当鼠标按下时,白云会在屏幕中间200像素的范围内随机生成,并且不断向里移动和缩小,直到消失。当鼠标松开时,白云停止移动和生成。
阅读全文