Как остановить оператор if - PullRequest
1 голос
/ 21 апреля 2020

Я действительно плох в этом, и я пытаюсь сделать "симуляцию" людей, входящих и выходящих из комнаты. Когда mouseX> width / 2, появляется «новый человек», а когда mouseX> width / 2, программа должна удалить человека.

Это "работает", но никогда не перестает добавлять / вычитать "людей". Я не знаю, как заставить его складывать или вычитать только один раз, когда мышь пересекает холст.

вот код:

String comesIn = "In";
String goesOut = "Out";

int n=0;

void setup() 
  {
  size(640, 360);
  }

void draw()
{
background(255);
line(320, 0, 320,360 );

    if(mouseX > width/2)
    {
      println("in");
      text(comesIn, (width/2)+(width/4), height/2);
      fill(50);
      n++;
      println("people = "+n);
    }
    if(mouseX < width/2)
    {
      println("out");
      text(goesOut, width/4, height/2);
      fill(50);
      n--;
      println("people = "+n);
    } 
}

СПАСИБО

1 Ответ

1 голос
/ 21 апреля 2020

вы можете сделать что-то вроде этого;

String prevItem = "";

int n=0;

void setup() 
  {
    size(640, 360);
 }

 void draw()
  {
    background(255);
    line(320, 0, 320,360 );

if(mouseX > width/2 && prevItem !== "right")
{
  println("in");
  text(comesIn, (width/2)+(width/4), height/2);
  fill(50);
  n++;
  println("people = "+n);
  prevItem = "right";
}
if(mouseX < width/2  && prevItem !== "left")
{
  println("out");
  text(goesOut, width/4, height/2);
  fill(50);
  n--;
  println("people = "+n);
  prevItem = "left";
} 
}

Надеюсь, это поможет

...