Game of Pong 1
Opdracht 1
Inleiding
In deze module gaan we een oud spel 'Pong' maken. Pong is een oud arcade-spel en je keert een hiermee een paar basis concepten van game development.
turtle
We gaan gebruik maken van de turtle module van Python.
import turtle
De turtle
module in Python is een eenvoudige manier om grafische tekeningen te maken door middel van een virtuele "schildpad" die over het scherm beweegt en lijnen tekent.
De turtle-module gebruiken we om grafische objecten te maken en te verplaatsen. Het helpt ons om het speelveld, de paddle, en de bal te tekenen.
Nadat de turtle module is geïmporteerd, maken we een window (venster) voor het spel.
# Venster instellen
wn = turtle.Screen()
wn.title("Pong voor <Jouw Naam>")
wn.bgcolor("black")
wn.setup(width=800, height=600)
wn.tracer(0)
input("Press any key to continue...") # tijdelijke toevoeging t.b.v. testen
Hier maken we een venster met de titel "Pong voor<Jouw Naam>". Vervang <Jouw Naam> door jouw naam.
De achtergrondkleur is zwart en de afmetingen van het venster zijn 800 bij 600 pixels. Met wn.tracer(0)
zorgen we ervoor dat het scherm alleen ververst als wij dat willen, wat handig is voor het maken van animaties.
Opdracht
Test de code.
Leg in je eigen woorden uit waarom regel 8 in de code staat. Wat heeft regel 8 te maken met testen? Wat gebeurt er als deze regel er niet in staat.
Inleveren
Korte uitleg in eigen woorden waarom regel 8 in de code staat.
Opdracht 2
In deze opdracht maken we een paddle voor de speler. De paddle is een rechthoek die de speler kan verplaatsen om de bal terug te kaatsen.
# Paddle
paddle = turtle.Turtle()
paddle.speed(0)
paddle.shape("square")
paddle.color("white")
paddle.shapesize(stretch_wid=6, stretch_len=1)
paddle.penup()
paddle.goto(0, 0)
wn.update()
Uitleg:
- We maken een turtle-object genaamd
paddle
. paddle.speed(0)
zorgt ervoor dat de paddle direct getekend wordt zonder animatie.paddle.shape("square")
geeft de paddle de vorm van een vierkant.paddle.color("white")
maakt de paddle wit.paddle.shapesize(stretch_wid=6, stretch_len=1)
maakt de paddle rechthoekig door de breedte te stretchen.paddle.penup()
zorgt ervoor dat de paddle niet tekent als hij beweegt.paddle.goto(0, 0)
plaatst de paddle op het midden van het scherm verschijnt.wn.update()
zorgt ervoor dat het scherm wordt geüpdatet.
Coördinaten
Het scherm is verdeeld in coördinaten. Een coördinaat is (0,0) en dat is het midden van het scherm.
Het eerst cijfer is de horizontale positie en de twee is de verticale positie.
Voorbeelden
(10,0) | 10 punten rechts van het midden. |
(0,10) | (0,10) 10 punten boven het midden. |
(-10,0) | (-10,0) 10 punten links van het midden. |
(0,-10) | (0,-10) 10 punten onder het midden |
(10,-10) | (15,-10) 15 punten rechts en dan 10 naar beneden vanuit het midden. |
Opdracht
Verander de code zodat de paddle aan de linkerkant van het scherm staat. Hiervoor moet je dus de coördinaten aanpassen.
Test je programma uit en zorg ervoor dat je een witte paddle ziet aan de linkerkant van het venster.
Inleveren
Screenshot van het scherm waarin je de paddle ziet.
Opdracht 3
We gaan ervoor zorgen dat je de paddle kan bewegen.
De paddle kan twee richtingen op: up (naar boven) en down (naar beneden).
We maken eerst twee functies die de paddel up of down kunnen bewegen.
def paddle_up():
y = paddle.ycor()
if y < 250:
y += 20
paddle.sety(y)
def paddle_down():
y = paddle.ycor()
if y > -240:
y -= 20
paddle.sety(y)
Uitleg:
paddle_up()
verhoogt de y-coördinaat van de paddle met 20 als deze nog niet de bovenkant van het scherm heeft bereikt.paddle_down()
verlaagt de y-coördinaat van de paddle met 20 als deze nog niet de onderkant van het scherm heeft bereikt.