Udvikling i Tid

Fra HTX Arduino
Spring til navigation Spring til søgning

Eksemplet her tager udgangspunkt i millis()[1], og er en udvidelse af eksemplet på Spil Opdatering.

Løsning med ændring af tids-intervallet

Det der ændres på er det tidsinterval der går mellem flytningen af blokken, så det ændrer hastigheden. Det gøres ved at klikke på musen, hvor højreklik giver mindre hastighed og venstreklik give højere hastighed.

For illustrationens skyld vises intervallet.

int posY = 0;
int stepY = 20;
int interval = 333;
int lastTime = 0;

void setup() {
  size(200, 400);
  frameRate(60);
  textSize(20);
}

void draw() {
  background(255);
  fill(180);
  rect(90, posY, 20, 20);
  if ((millis() - lastTime) > interval) {
    lastTime += interval;
    posY += stepY;
    if (posY > height - 20) {
      posY = 0;
    }
  }
  fill(0);
  text("Interval = " + interval, 10, 30);
}

void mousePressed() {
  if (mouseButton == LEFT) {
    interval /= 2;
  } else if (mouseButton == RIGHT) {
    interval *= 2;
  }
}

Løsning med ændringen af step-værdien

Det der ændres på er hvor langt blokken flyttes, ved at ændre på step-værdien, så det ændrer hastigheden. Det gøres ved at klikke på musen, hvor højreklik giver mindre hastighed og venstreklik give højere hastighed.

For illustrationens skyld vises step-værdien.

int posY = 0;
int stepY = 20;
int interval = 333;
int lastTime = 0;

void setup() {
  size(200, 400);
  frameRate(60);
  textSize(20);
}

void draw() {
  background(255);
  fill(180);
  rect(90, posY, 20, 20);
  if ((millis() - lastTime) > interval) {
    lastTime += interval;
    posY += stepY;
    if (posY > height - 20) {
      posY = 0;
    }
  }
  fill(0);
  text("Step = " + stepY, 10, 30);
}

void mousePressed() {
  if (mouseButton == LEFT) {
    stepY *= 2;
  } else if (mouseButton == RIGHT) {
    stepY /= 2;
  }
}

Referencer

  1. millis() på Processing.org
Spiludvikling - Processing
Bruger-input mousePressed() - mouseReleased() - mouseClicked() - mouseMoved() - mouseDragged() - mouseX og mouseY - mouseButton - mousePressed - keyPressed() - keyReleased() - keyTyped() - key - keyCode - keyPressed - Flere taster
Data-model Objekt Placering - Objekt Hastighed - Spilleplade - Flere Objekter - Array i Spil - 2-dimensionelt Array - Spil Hop - Highscore - Start-skærm
Visning Rektangel - Cirkel - Spilleplade - Grafikobjekter - Farver i Spil - Kollision
Spil-tid frameRate - Objekter i Bevægelse - Spilletid - Spil Opdatering - Udvikling i Tid
Objekter Objekter i Bevægelse