fill()
をクリックした後(変更したとき)に同じままにしてから、クリックを解除してホバーを離れると、最も簡単で簡単な方法は何でしょうか?fill()内の色をmousePressedの後で同じにするにはどうすればいいですか?
このプロジェクトでは、単にグリッドを作成しました。マウスが特定の矩形(x
、y
)の上にマウスを置くと、その状態に基づいて色が変わります。fill(50)
がデフォルトです。fill(75)
はマウスがホバリングしたときのもので、fill(100)
はマウスがクリックされたときのものです。しかし、ここでマウスがクリックされていないときは、マウスが四角形を離れるまでホバーフィルに戻ります。ありがとう。
int cols, rows;
int scl = 20;
void setup() {
size(400, 400);
int w = 400;
int h = 400;
cols = w/scl;
rows = h/scl;
}
void draw() {
background(255);
for (int x = 0; x < cols; x++) {
for (int y = 0; y < rows; y++) {
int xpos = x*scl;
int ypos = y*scl;
stroke(55);
if((mouseX >= xpos && mouseX <= xpos+scl) &&
(mouseY >= ypos && mouseY <= ypos+scl)){
fill(75);
if (mousePressed == true){
println("Clicked at: " + xpos + " and " + ypos);
fill(100);
//here is the desired location for the fill to remain constant even
//after unclicking and leaving hover
}
println("Mouse at: " + xpos + " and " + ypos);
}else{
fill(50);
}
rect(xpos, ypos, scl, scl);
}
}
}
コードの書式を修正してもらえますか?そこには2つの 'setup()'関数があります。また、何をしようとしているのか、どのコード行が期待どおりに動作しているのか、さらに具体的にお考えください。 –
申し訳ありませんが、私はそれを見ませんでした!今すぐコードを実行すると、四角形の上にマウスを置くと色が変わり、クリックすると色が変わります。 'mousePressed'の後に使用される塗りつぶし色は、クリックされた四角形をクリックしたままにするために使用します。 – Icy4614