Processing Objekter

Fra HTX Arduino
Spring til navigation Spring til søgning

Siden her beskriver hvordan Processing kan håndtere objekter. Siden er skrevet ud fra best pracsis omkring objekter.

Eksempler til denne side ligger i Denne ZIP-fil. Der beskrives to forskellige klasser - en Button klasse, der kan lave objekter til knapper på skærmen og en snowflake klasse der demonstrerer hvordan man kan håndtere mange objekter i en datastruktur.

Klasser laver objekter

For at kunne oprette objekter skal man have en klasse der indledes med følgende kode:

class Button {

Hvor Button er navnet eller typen på klassen.

I klassen skal der være en constructor, som er den funktion der opretter det aktuelle objekt. Denne constructor kan i Button-eksemplet se ud som følger:

  Button(float xPos, float yPos, float wid, float hgh, String tx) {
    x = xPos;
    y = yPos;
    w = wid;
    h = hgh;
    txt = tx;
    r = 0;
    c = 0;
    textColor = 255;
    hover = 0;
    txtSz = 25;
    frame = 0;
    frameColor = 0;
  }

Kaldet til denne constructor ser ud som følger:

Button btn1 = new Button(30, 400, 140, 40, "Klik Her");

Der oprettes et objekt btn1 med de parametre i kaldet, som bliver til egenskaber der er angivet i kaldet til Button-constructoren.

Et objekts egenskaber

Hver objekt der oprettes ud fra en klasse vil have en række egenskaber.

Hvert enkelt objekt der oprettes har sine egne individuelle egenskaber, men de er angivet inde i klassens kode.

En typisk klasse vil oprette objektet med de egenskaber der er nødvendige, mens de mere sekundære egenskaber sættes til en standard-værdi der giver mening i anvendelsen af objektet.

Et objekts metoder

Ud over constructoren der opretter objektet, så vil der normalt være en del metoder som kan anvendes til brug i det program man skriver.

set-metoder

Hvis man vil tilrette objektet ved at rette på de sekundære egenskaber, så vil man normalt oprette set-metoder i klassen, hvor man sender de nye egenskaber over som parametre.

Et eksempel på en set-metode kunne være setColor() eller setRadius() som vist her:

  void setColor(color cl, color hv) {
    c = cl;
    hover = hv;
  }
  
  void setRadius(float round) {
    r = round;
  }

metoder der anvendes i afviklingen af programmet

For at man skal kunne anvende objekterne i programmet, så skal man kunne vise objektet med en draw() metode eller man skal kunne aflæse om der er klikket på musen med en clicked() metode. De kan se ud som følger:

  void draw() {
    rectMode(CORNER);
    if (mouseIn()) {
      fill(hover);
    } else {
      fill(c);
    }
    strokeWeight(frame);
    stroke(frameColor);
    rect(x, y, w, h, r);
    textSize(txtSz);
    textAlign(CENTER);
    fill(textColor);
    text(txt, x + w/2, y + txtSz / 3 + h/2);
  }

  boolean clicked() {
    if (mouseIn()) {
      if (mousePressed && (mouseButton == LEFT)) {
        return true;
      }
    }
    return false;
  }
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