Coördinaten in Pygame Zero
Pixels
Een scherm is een raster van kleine gekleurde puntjes: pixels. Ons spelvenster is 600 pixels breed en 400 pixels hoog: 240.000 pixels in totaal.
Elk pixel heeft een adres: (x, y). Zo weet Pygame Zero exact waar het iets moet tekenen.
Waar zit (0, 0)?
In wiskundige grafieken zit het nulpunt (0, 0) linksonder. In Pygame Zero zit (0, 0) linksboven.
xloopt naar rechts: hoe groterx, hoe verder naar rechts.yloopt naar beneden: hoe grotery, hoe lager op het scherm.
Ster en basket
In Catch the Stars start de ster op (300, 30): horizontaal in het midden (x = 300 = helft van 600), vlak bovenaan (y = 30). De basket staat op (300, 370): ook in het midden, bijna helemaal onderaan.
Als je schrijft:
star.y = star.y + 3Beweeg je de ster 3 pixels naar beneden per frame, want een grotere y-waarde betekent lager op het scherm.
Positie van een Actor
actor.pos is het middenpunt van de afbeelding, niet de hoek. Je kunt ook de randen opvragen:
| Eigenschap | Betekenis |
|---|---|
actor.left | linkerrand van de afbeelding |
actor.right | rechterrand van de afbeelding |
actor.top | bovenrand van de afbeelding |
actor.bottom | onderrand van de afbeelding |
Zo check je of de basket het scherm uitloopt:
if basket.right > WIDTH:
basket.x = WIDTH - basket.width / 2Hoekpunten van het scherm
| Hoekpunt | x | y |
|---|---|---|
| Linksboven | 0 | 0 |
| Rechtsboven | 600 | 0 |
| Linksonder | 0 | 400 |
| Rechtsonder | 600 | 400 |
| Midden | 300 | 200 |
Verdere lezing: “Pixel Coordinates and Pygame Objects” door albro