gpt4 book ai didi

java - 处理中控制水滴数组的Y值

转载 作者:行者123 更新时间:2023-12-01 19:45:40 25 4
gpt4 key购买 nike

我制作了一个动画,其中有很多线条(水滴)掉落;通过单击鼠标左键,您只需减慢它们的速度。我还想做的是控制它们下落时的 Y 值:当我用鼠标右键单击时,它们都会跟随它。

Drop[] drops = new Drop[270]; // array 

void setup() {
size(640, 360); // size of the window
for (int i = 0; i < drops.length; i++) {
drops[i] = new Drop();
}
}

void draw() {

background(52);

for (int i = 0; i < drops.length; i++) {
drops[i].fall();
drops[i].show();
drops[i].noGravity();
}
}

以及 Drop 类:

class Drop {
float x = random(width); // posizione x di partenza
float y = random(-180,-100); // posizione y di partenza
float yspeed = random(2,7); // velocità random

void fall() {
y += yspeed;

if (y > height) { // riposizionamento delle gocce
y = random(-180,-100);
}
}

void noGravity(){ //
if(mousePressed && (mouseButton == LEFT)){
y -= yspeed*0.75;
}

if(mousePressed && (mouseButton == RIGHT)){
this.y = mouseY + yspeed;
}
}

void show() { // funzione per l'aspetto delle gocce
stroke(52, 82, 235);
line(x,y,x,y+20);
}
}

我所说的函数是 noGravity(),但是当我单击鼠标右键时,而不是跟随我的鼠标,所有的水滴都会对齐。有什么简单的建议吗?谢谢大家!!!

最佳答案

右键单击时更改 y 位置与更改水滴移动速度不同。您可能只是没有注意到。

在这里,尝试更改您在 noGravity() 中单击鼠标右键的部分:

yspeed = abs(yspeed); //this is so the drops behaves normally again when you stop right clicking
if(mousePressed && (mouseButton == RIGHT)){
if (mouseY < this.y) { //this makes the drops go toward the mouse position
yspeed = yspeed * -1; //going up is negative speed
}
}

这有点酷。请注意,如果按住右键单击,当您移动鼠标时,水滴会尝试以自己的速度跟随。我不知道你在做什么,但我喜欢它。

我不确定想要的结果,所以如果我误解了,请告诉我。

关于java - 处理中控制水滴数组的Y值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59127658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com