Processing Objekter: Forskelle mellem versioner
Bar (diskussion | bidrag) Ingen redigeringsopsummering |
Bar (diskussion | bidrag) 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;
}