Skip to main content

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.

We gaan ook leren wat coördinaten zijn.

De code voor de paddle:

# 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 eerste cijfer wordt de x-waarde genoemd en is de horizontale positie (links-rechts).

Het tweede cijfer wordt de y-waarde genoemd en is de verticale positie (boven-beneden).

Het eerste cijfer in een cooridaat is de x-waarde en de tweede coordiaat is de y-waarde.
De x-waarde geeft de horizontale postie weer en de y-waarde geeft de vertikale positie weer.

Voorbeelden

(10,0) x-waarde is 10 en de y-waarde is 0; 10 punten rechts van het midden.
(0,10)  10 punten boven het midden.
(-10,0) 10 punten links van het midden.
(0,-10) 10 punten onder het midden
(10,-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.

image-1716544749432.png

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.