programmeren
in python
Jaar 2 - Module 1 - Les 4: Werken met rectangles in PyGame
vandaag gaan we leren
-
Hoe je PyGame afebeeldingen verplaatst zodat ze klikbaar zijn
Met PyGame kunnen we een user interface maken.
thema jaar 2: Pygame
Met PyGame kunnen we een user interface maken.
In een user interface ziet de gebruiker wat hij moet doen, en hoe hij dat moet doen.
thema jaar 2: Pygame
Met PyGame kunnen we een user interface maken.
In een user interface ziet de gebruiker wat hij moet doen, en hoe hij dat moet doen.
thema jaar 2: Pygame
Voor een quiz ziet de gebruiker, bijv de vraag op te beantwoorden, en hoe de vraag beantwoord moet worden, bijv. door op het juiste antwoord te klikken.
Met PyGame kunnen we een user interface maken.
In een user interface ziet de gebruiker wat hij moet doen, en hoe hij dat moet doen.
thema jaar 2: Pygame
Voor een quiz ziet de gebruiker, bijv de vraag op te beantwoorden, en hoe de vraag beantwoord moet worden, bijv. door op het juiste antwoord te klikken.
Daarvoor moet je ook de rechthoek van plaatjes verplaatsen.
Met PyGame kunnen we een user interface maken.
In een user interface ziet de gebruiker wat hij moet doen, en hoe hij dat moet doen.
thema jaar 2: Pygame
Voor een quiz ziet de gebruiker, bijv de vraag op te beantwoorden, en hoe de vraag beantwoord moet worden, bijv. door op het juiste antwoord te klikken.
Daarvoor moet je ook de rechthoek van plaatjes verplaatsen.
Dat gaan we vandaag leren!
demo
Vorige les hebben we muiskliks afgehandeld op de letter A afgehandeld. De letter waarop geklikt werd, kwam in beeld met een print().
Events in Pygame verwerken
Vorige les hebben we muiskliks afgehandeld op de letter A afgehandeld. De letter waarop geklikt werd, kwam in beeld met een print().
Misschien heb je ook gezien dat het voor de andere letters nog niet goed werkte!
Events in Pygame verwerken
demo
Vorige les hebben we muiskliks afgehandeld. De letter waarop geklikt werd, kwam in beeld met een print().
De letters staan er wel, maar je kunt er niet op klikken. Je klikt altijd op de A.
Events in Pygame verwerken
Vorige les hebben we muiskliks afgehandeld. De letter waarop geklikt werd, kwam in beeld met een print().
De letters staan er wel, maar je kunt er niet op klikken. Je klikt altijd op de A.
Hoe dat komt, gaan we nu leren!
Events in Pygame verwerken
Events in Pygame
Deze code zagen we in de demo.
# hier hoort code om pygame aan te zetten
# en het veld op de juiste grootte te zetten
A = pygame.image.load("A.png")
B = pygame.image.load("B.png")
while True:
# Hier hoort code om alle elementen, zoals
# de tekst neer te zetten
screen.blit(A, (0, 0))
screen.blit(B, (500, 10))
pygame.event.get()
locatie_muis = pygame.mouse.get_pos()
knoppen = pygame.mouse.get_pressed()
if knoppen[0] == 1:
if A.get_rect().collidepoint(locatie_muis):
print('A')
if B.get_rect().collidepoint(locatie_muis):
print('B')
time.sleep(0.5) #even wachten op de volgende klik!
Events in Pygame
Deze code zagen we in de demo. Die was bijna goed, maar nog niet helemaal.
# hier hoort code om pygame aan te zetten
# en het veld op de juiste grootte te zetten
A = pygame.image.load("A.png")
B = pygame.image.load("B.png")
while True:
# Hier hoort code om alle elementen, zoals
# de tekst neer te zetten
screen.blit(A, (0, 0))
screen.blit(B, (500, 10))
pygame.event.get()
locatie_muis = pygame.mouse.get_pos()
knoppen = pygame.mouse.get_pressed()
if knoppen[0] == 1:
if A.get_rect().collidepoint(locatie_muis):
print('A')
if B.get_rect().collidepoint(locatie_muis):
print('B')
time.sleep(0.5) #even wachten op de volgende klik!
Events in Pygame
Deze code zagen we in de demo. Die was bijna goed, maar nog niet helemaal.
Dat komt door de blit().
# hier hoort code om pygame aan te zetten
# en het veld op de juiste grootte te zetten
A = pygame.image.load("A.png")
B = pygame.image.load("B.png")
while True:
# Hier hoort code om alle elementen, zoals
# de tekst neer te zetten
screen.blit(A, (0, 0))
screen.blit(B, (500, 10))
pygame.event.get()
locatie_muis = pygame.mouse.get_pos()
knoppen = pygame.mouse.get_pressed()
if knoppen[0] == 1:
if A.get_rect().collidepoint(locatie_muis):
print('A')
if B.get_rect().collidepoint(locatie_muis):
print('B')
time.sleep(0.5) #even wachten op de volgende klik!
Events in Pygame
Deze code zagen we in de demo. Die was bijna goed, maar nog niet helemaal.
Dat komt door de blit().
blit() zet wel een plaatje op de juiste plek, maar niet het "klik" vierkant dat bij het plaatje hoort.
# hier hoort code om pygame aan te zetten
# en het veld op de juiste grootte te zetten
A = pygame.image.load("A.png")
B = pygame.image.load("B.png")
while True:
# Hier hoort code om alle elementen, zoals
# de tekst neer te zetten
screen.blit(A, (0, 0))
screen.blit(B, (500, 10))
pygame.event.get()
locatie_muis = pygame.mouse.get_pos()
knoppen = pygame.mouse.get_pressed()
if knoppen[0] == 1:
if A.get_rect().collidepoint(locatie_muis):
print('A')
if B.get_rect().collidepoint(locatie_muis):
print('B')
time.sleep(0.5) #even wachten op de volgende klik!
Events in Pygame
In de volgende demo kun je dat goed zien.
Events in Pygame
In de volgende demo kun je dat goed zien.
De A beweegt, maar de rect() blijft staan!
demo
Nu gaan we de code aanpassen!
Events in Pygame
# hier hoort code om pygame aan te zetten
# en het veld op de juiste grootte te zetten
A = pygame.image.load("A.png")
B = pygame.image.load("B.png")
while True:
# Hier hoort code om alle elementen, zoals
# de tekst neer te zetten
screen.blit(A, (0, 0))
screen.blit(B, (0, 0))
pygame.event.get()
locatie_muis = pygame.mouse.get_pos()
knoppen = pygame.mouse.get_pressed()
if knoppen[0] == 1:
if A.get_rect().collidepoint(locatie_muis):
print('A')
if B.get_rect().collidepoint(locatie_muis):
print('B')
time.sleep(0.5) #even wachten op de volgende klik!
Nu gaan we de code aanpassen!
Dit is de code die we hadden, alleen voor de letter A.
Events in Pygame
# hier hoort code om pygame aan te zetten
# en het veld op de juiste grootte te zetten
A = pygame.image.load("A.png")
while True:
# Hier hoort code om alle elementen, zoals
# de tekst neer te zetten
screen.blit(A, (0, 0))
pygame.event.get()
locatie_muis = pygame.mouse.get_pos()
knoppen = pygame.mouse.get_pressed()
if knoppen[0] == 1:
if A.get_rect().collidepoint(locatie_muis):
print('A')
time.sleep(0.5) #even wachten op de volgende klik!
# hier hoort code om pygame aan te zetten
# en het veld op de juiste grootte te zetten
A = pygame.image.load("A.png")
A_rechthoek = A.get_rect()
while True:
# Hier hoort code om alle elementen, zoals
# de tekst neer te zetten
screen.blit(A, (0, 0))
pygame.event.get()
locatie_muis = pygame.mouse.get_pos()
knoppen = pygame.mouse.get_pressed()
if knoppen[0] == 1:
if A.get_rect().collidepoint(locatie_muis):
print('A')
time.sleep(0.5) #even wachten op de volgende klik!
Nu gaan we de code aanpassen!
Dit is de code die we hadden voor de letter A.
Deze regel is nieuw, we slaan de rechthoek nu op in een variabele.
Events in Pygame
# hier hoort code om pygame aan te zetten
# en het veld op de juiste grootte te zetten
A = pygame.image.load("A.png")
A_rechthoek = A.get_rect()
while True:
# Hier hoort code om alle elementen, zoals
# de tekst neer te zetten
screen.blit(A, (0, 0))
pygame.event.get()
locatie_muis = pygame.mouse.get_pos()
knoppen = pygame.mouse.get_pressed()
if knoppen[0] == 1:
if A.get_rect().collidepoint(locatie_muis):
print('A')
time.sleep(0.5) #even wachten op de volgende klik!
Nu gaan we de code aanpassen!
Dit is de code die we hadden voor de letter A.
Deze regel is nieuw, we slaan de rechthoek nu op in een variabele.
Dan kunnen we die rechthoek ook verplaatsen.
Events in Pygame
# hier hoort code om pygame aan te zetten
# en het veld op de juiste grootte te zetten
A = pygame.image.load("A.png")
A_rechthoek = A.get_rect()
while True:
# Hier hoort code om alle elementen, zoals
# de tekst neer te zetten
screen.blit(A, (0, 0))
pygame.event.get()
locatie_muis = pygame.mouse.get_pos()
knoppen = pygame.mouse.get_pressed()
if knoppen[0] == 1:
if A.get_rect().collidepoint(locatie_muis):
print('A')
time.sleep(0.5) #even wachten op de volgende klik!
Het blitten gaat nu ook anders.
Events in Pygame
Het blitten gaat nu ook anders.
We zetten de rechthoek op een plek neer.
Events in Pygame
# hier hoort code om pygame aan te zetten
# en het veld op de juiste grootte te zetten
A = pygame.image.load("A.png")
A_rechthoek = A.get_rect()
while True:
# Hier hoort code om alle elementen, zoals
# de tekst neer te zetten
screen.blit(A, (0, 0))
pygame.event.get()
locatie_muis = pygame.mouse.get_pos()
knoppen = pygame.mouse.get_pressed()
if knoppen[0] == 1:
if A.get_rect().collidepoint(locatie_muis):
print('A')
time.sleep(0.5) #even wachten op de volgende klik!
Het blitten gaat nu ook anders.
We zetten de rechthoek van A op een plek neer.
Hier is dat (300, 100).
Events in Pygame
# hier hoort code om pygame aan te zetten
# en het veld op de juiste grootte te zetten
A = pygame.image.load("A.png")
A_rechthoek = A.get_rect()
while True:
# Hier hoort code om alle elementen, zoals
# de tekst neer te zetten
A_rechthoek.center = (300, 100)
screen.blit(A, A_rechthoek)
pygame.event.get()
locatie_muis = pygame.mouse.get_pos()
knoppen = pygame.mouse.get_pressed()
if knoppen[0] == 1:
if A.get_rect().collidepoint(locatie_muis):
print('A')
time.sleep(0.5) #even wachten op de volgende klik!
Het blitten gaat nu ook anders.
Dan blitten we het plaatje meteen in de rechthoek.
Events in Pygame
# hier hoort code om pygame aan te zetten
# en het veld op de juiste grootte te zetten
A = pygame.image.load("A.png")
A_rechthoek = A.get_rect()
while True:
# Hier hoort code om alle elementen, zoals
# de tekst neer te zetten
A_rechthoek.center = (300, 100)
screen.blit(A, A_rechthoek)
pygame.event.get()
locatie_muis = pygame.mouse.get_pos()
knoppen = pygame.mouse.get_pressed()
if knoppen[0] == 1:
if A.get_rect().collidepoint(locatie_muis):
print('A')
time.sleep(0.5) #even wachten op de volgende klik!
Deze regel wordt ook ietsjes anders.
Events in Pygame
# hier hoort code om pygame aan te zetten
# en het veld op de juiste grootte te zetten
A = pygame.image.load("A.png")
A_rechthoek = A.get_rect()
while True:
# Hier hoort code om alle elementen, zoals
# de tekst neer te zetten
A_rechthoek.center = (300, 100)
screen.blit(A, A_rechthoek)
pygame.event.get()
locatie_muis = pygame.mouse.get_pos()
knoppen = pygame.mouse.get_pressed()
if knoppen[0] == 1:
if A.get_rect().collidepoint(locatie_muis):
print('A')
time.sleep(0.5) #even wachten op de volgende klik!
Deze regel wordt ook ietsjes anders.
Events in Pygame
# hier hoort code om pygame aan te zetten
# en het veld op de juiste grootte te zetten
A = pygame.image.load("A.png")
A_rechthoek = A.get_rect()
while True:
# Hier hoort code om alle elementen, zoals
# de tekst neer te zetten
A_rechthoek.center = (300, 100)
screen.blit(A, A_rechthoek)
pygame.event.get()
locatie_muis = pygame.mouse.get_pos()
knoppen = pygame.mouse.get_pressed()
if knoppen[0] == 1:
if A.get_rect().collidepoint(locatie_muis):
print('A')
time.sleep(0.5) #even wachten op de volgende klik!
Deze regel wordt ook ietsjes anders.
We kijken of locatie_muis de plek van de variabele A_rechthoek aanraakt.
Events in Pygame
# hier hoort code om pygame aan te zetten
# en het veld op de juiste grootte te zetten
A = pygame.image.load("A.png")
A_rechthoek = A.get_rect()
while True:
# Hier hoort code om alle elementen, zoals
# de tekst neer te zetten
A_rechthoek.center = (300, 100)
screen.blit(A, A_rechthoek)
pygame.event.get()
locatie_muis = pygame.mouse.get_pos()
knoppen = pygame.mouse.get_pressed()
if knoppen[0] == 1:
if A_rechthoek.collidepoint(locatie_muis):
print('A')
time.sleep(0.5) #even wachten op de volgende klik!
Nu werkt het klikken goed, waar we de A ook neerzetten!
Events in Pygame
# hier hoort code om pygame aan te zetten
# en het veld op de juiste grootte te zetten
A = pygame.image.load("A.png")
A_rechthoek = A.get_rect()
while True:
# Hier hoort code om alle elementen, zoals
# de tekst neer te zetten
A_rechthoek.center = (300, 100)
screen.blit(A, A_rechthoek)
pygame.event.get()
locatie_muis = pygame.mouse.get_pos()
knoppen = pygame.mouse.get_pressed()
if knoppen[0] == 1:
if A_rechthoek.collidepoint(locatie_muis):
print('A')
time.sleep(0.5) #even wachten op de volgende klik!
Nu werkt het klikken goed, waar we de A ook neerzetten!
Kijk maar mee in de demo.
Events in Pygame
# hier hoort code om pygame aan te zetten
# en het veld op de juiste grootte te zetten
A = pygame.image.load("A.png")
A_rechthoek = A.get_rect()
while True:
# Hier hoort code om alle elementen, zoals
# de tekst neer te zetten
A_rechthoek.center = (300, 100)
screen.blit(A, A_rechthoek)
pygame.event.get()
locatie_muis = pygame.mouse.get_pos()
knoppen = pygame.mouse.get_pressed()
if knoppen[0] == 1:
if A_rechthoek.collidepoint(locatie_muis):
print('A')
time.sleep(0.5) #even wachten op de volgende klik!
demo
zodadelijk op de computer...
opdrachten deel b
opdrachten deel b
opdrachten deel b
opdrachten deel b
Lukt opdr. 3 nog niet?
Dat geeft niks, die doen we volgende week samen!
opdrachten deel b (extra)
opdrachten deel b (extra)
opdrachten deel b (extra)
Python Klas 2 - Module 1 - Les 4
By Felienne
Python Klas 2 - Module 1 - Les 4
Leerdoel Module: PyGame gebruiken Lesdoel: Leren muiskliks afhandelen in PyGame
- 1,082