0

私は処理中の単純なロールオーバーに取り組んでいます。現在、マウスを楕円の上に置くとロールオーバーが機能しますが、マウスを別の場所に移動しても消えません。

float x = random(0, 255);
float y = random(0, 255);
float d;
float radius;
boolean rollover = false;

void setup() {
  PFont font = loadFont("DialogInput-12.vlw");
  size (800, 600);
  noStroke();
  smooth();
}

void draw() {
  drawData(x, y);

  if (rollover) {
  fill(y);
  textAlign(CENTER);
  text("hahaha", width/2, height/2);
  }

}

void drawData(float x, float y) {

  float value = x;
  float d = dist(x, y, mouseX, mouseY);
  float radius = map(value, 0, y, 10, 10);
  fill(x);  
  ellipse(x, y, radius, radius);

  if(d < radius) {
  rollover = true;
  } else {
    rollover = false;
  }


}
4

1 に答える 1

4

描画ループの先頭に「background(colorvalue)」行を追加するだけです。

float x = random(0, 255);
float y = random(0, 255);
float d;
float radius;
boolean rollover = false;

void setup() {
  PFont font = loadFont("DialogInput-12.vlw");
  size (800, 600);
  noStroke();
  smooth();
}

void draw() {
  background(255);  // add this

  drawData(x, y);

  if (rollover) {
  fill(y);
  textAlign(CENTER);
  text("hahaha", width/2, height/2);
  }

}

void drawData(float x, float y) {

  float value = x;
  float d = dist(x, y, mouseX, mouseY);
  float radius = map(value, 0, y, 10, 10);
  fill(x);  
  ellipse(x, y, radius, radius);

  if(d < radius) {
  rollover = true;
  } else {
    rollover = false;
  }


}
于 2013-01-19T00:56:19.523 に答える