Processing Objekter: Forskelle mellem versioner

Fra HTX Arduino
Spring til navigation Spring til søgning
Ingen redigeringsopsummering
Ingen redigeringsopsummering
Linje 1: Linje 1:
Siden her beskriver hvordan [[Processing]] kan håndtere objekter. Siden er skrevet ud fra best pracsis omkring objekter.
Siden her beskriver hvordan [[Processing]] kan håndtere objekter. Siden er skrevet ud fra best pracsis omkring objekter.


Eksempler til denne side ligger i [[media:Objekter-Opgave.zip|Denne ZIP-fil]].
Eksempler til denne side ligger i [[media:Objekter-Opgave.zip|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==
==Klasser laver objekter==
Linje 37: Linje 37:
</syntaxhighlight>
</syntaxhighlight>


Der oprettes et objekt '''btn1''' med de egenskaber der er angivet i kaldet til Button-constructoren.
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:
<syntaxhighlight lang="C">
  void setColor(color cl, color hv) {
    c = cl;
    hover = hv;
  }
 
  void setRadius(float round) {
    r = round;
  }
</syntaxhighlight>
===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:
<syntaxhighlight lang="C">
  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;
  }
</syntaxhighlight>
{{Spiludvikling}}
{{Spiludvikling}}




[[Kategori:Spiludvikling]]
[[Kategori:Spiludvikling]]

Versionen fra 3. jan. 2024, 16:28

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