Jaar 2 - Module 1 - Les 4: Collision Detection - Deel 2
Ik heb op je feedback gereageerd.
Neem even de tijd om dat te lezen.
Zet je vel nu weer als naambordje neer
Code van week 3 samen bespreken
Nadenken over extra elementen in je simulatie
Helemaal bovenaan laden we PyGame en time in
#laad modules in
import pygame
import time
Boven aan het programma stel je het speelveld in.
#stel het speelveld in
breedte = 800
hoogte = 600
screen = pygame.display.set_mode((breedte, hoogte))
#maak een variabele met RGB-code voor zwart
backgroundColor = 0, 0, 0
Dan laad je het plaatje van de muis
(bij jou natuurlijk een ander dier!)
#laad het plaatje van de muis in
muis = pygame.image.load("muis.png")
#dan vragen we de rechthoek op van het plaatje
muis_rechthoek = muis.get_rect()
#zet de snelheid goed, dit is naar rechts
muis_snelheid = [0, 1]
Nu bijna dezelfde code voor de leeuw
#laad het plaatje van de leeuw in
leeuw = pygame.image.load("leeuw-a.png")
#dan vragen we de rechthoek op van het plaatje
leeuw_rechthoek = leeuw.get_rect()
#zet de snelheid goed, dit is naar beneden
leeuw_snelheid = [1, 0]
Dan komt er een lus, met while True:
while True:
# doe de hele tijd terwijl het spel draait alles
# in de while True:
Alles wat er in de lus zit, moet beginnen met 2 spaties.
Dat wordt steeds weer herhaald.
In de lus zitten verschillende stukken code.
while True:
muis_rechthoek = muis_rechthoek.move(muis_snelheid)
screen.blit(muis, muis_rechthoek)
Deze code beweegt de muis met de muis_snelheid.
Daarna wordt de muis getekend.
In de lus zitten verschillende stukken code.
while True:
muis_rechthoek = muis_rechthoek.move(muis_snelheid)
screen.blit(muis, muis_rechthoek)
Deze code beweegt de muis met de muis_snelheid.
Daarna wordt de muis getekend.
In de lus zitten verschillende stukken code.
while True:
if muis_rechthoek.bottom < 0:
muis_snelheid[1] = - muis_snelheid[1]
if muis_rechthoek.bottom > 600:
muis_snelheid[1] = - muis_snelheid[1]
if muis_rechthoek.right < 0:
muis_snelheid[0] = - muis_snelheid[0]
if muis_rechthoek.right > 800:
muis_snelheid[0] = - muis_snelheid[0]
Deze code kijkt of de muis de zijkanten raakt, en draait dan om.
Dezelfde twee stukken staan er voor de leeuw.
Dezelfde twee stukken staan er voor de leeuw.
while True:
# hier staat dus bij jou de code voor de muis
leeuw_rechthoek = leeuw_rechthoek.move(leeuw_snelheid)
screen.blit(leeuw, leeuw_rechthoek)
Deze code beweegt de leeuw met de leeuw_snelheid.
Daarna wordt de leeuw getekend.
Deze code kijkt of de leeuw de zijkanten raakt, en draait dan om.
while True:
if leeuw_rechthoek.bottom < 0:
leeuw_snelheid[1] = - leeuw_snelheid[1]
if leeuw_rechthoek.bottom > 600:
leeuw_snelheid[1] = - leeuw_snelheid[1]
if leeuw_rechthoek.right < 0:
leeuw_snelheid[0] = - leeuw_snelheid[0]
if leeuw_rechthoek.right > 800:
leeuw_snelheid[0] = - leeuw_snelheid[0]
Dezelfde twee stukken staan er voor de leeuw.
while True:
#alle code voor het bewegen van de leeuw en de muis
time.sleep(10 / 1000)
Als laatste staat er nog code in de lus om even te wachten.
Anders gaat je simulatie te snel.
Net als vorige week oefenen we de codes weer op de werkbladen in 011.
Denk eraan! Begin niet meteen met programmeren, maar lees eerst de code en leg goed uit wat die code doet.
Schrijf steeds per blok op wat de code doet.
Net als vorige week oefenen we de codes weer op de werkbladen in 011.
Schrijf steeds per blok op wat de code doet.
Net als vorige week oefenen we de codes weer op de werkbladen in 011.
Als het goed is, wordt dat steeds makkelijker.
Vorige week hebben we er codes bij gezet voor voedsel en collision detection.
Vorige week hebben we er codes bij gezet voor voedsel en collision detection.
kaas = pygame.image.load("kaas.png")
kaas_rechthoek = kaas.get_rect()
Code om een nieuw element in te laden:
Vorige week hebben we er codes bij gezet voor voedsel en collision detection.
kaas = pygame.image.load("kaas.png")
kaas_rechthoek = kaas.get_rect()
Code om een nieuw element in te laden:
Proefwerkvraag...!
Vorige week hebben we er codes bij gezet voor voedsel en collision detection.
kaas = pygame.image.load("kaas.png")
kaas_rechthoek = kaas.get_rect()
Code om een nieuw element in te laden:
Vergeet niet om nieuwe elementen ook te "blitten" (tekenen)
screen.blit(kaas, kaas_rechthoek)
Vorige week hebben we er codes bij gezet voor voedsel en collision detection.
Dit is de code om te bekijken of de muis de kaas raakt,
en de muis laten groeien. We bekijken het stap voor stap.
while True:
#hier staat bij jou alle code om te bewegen
if muis_rechthoek.colliderect(kaas_rechthoek):
print('hap hap')
#de muis wordt groter:
x, y = muis_rechthoek.size
center = muis_rechthoek.center
x, y = int(x * 1.05), int(y * 1.05)
muis = pygame.image.load("muis.png")
muis = pygame.transform.scale(muis, (x, y))
muis_rechthoek = muis.get_rect()
muis_rechthoek.center = center
else:
print('ik heb honger')
Raakt de muis_rechthoek de kaas_rechthoek?
while True:
#hier staat bij jou alle code om te bewegen
if muis_rechthoek.colliderect(kaas_rechthoek):
print('hap hap')
#de muis wordt groter:
x, y = muis_rechthoek.size
center = muis_rechthoek.center
x, y = int(x * 1.05), int(y * 1.05)
muis = pygame.image.load("muis.png")
muis = pygame.transform.scale(muis, (x, y))
muis_rechthoek = muis.get_rect()
muis_rechthoek.center = center
else:
print('ik heb honger')
Als de muis de kaas raakt, print dan 'hap hap'.
while True:
#hier staat bij jou alle code om te bewegen
if muis_rechthoek.colliderect(kaas_rechthoek):
print('hap hap')
#de muis wordt groter:
x, y = muis_rechthoek.size
center = muis_rechthoek.center
x, y = int(x * 1.05), int(y * 1.05)
muis = pygame.image.load("muis.png")
muis = pygame.transform.scale(muis, (x, y))
muis_rechthoek = muis.get_rect()
muis_rechthoek.center = center
else:
print('ik heb honger')
We maken variabelen x en y aan, en slaan daarin de grootte van de muis op.
while True:
#hier staat bij jou alle code om te bewegen
if muis_rechthoek.colliderect(kaas_rechthoek):
print('hap hap')
#de muis wordt groter:
x, y = muis_rechthoek.size
center = muis_rechthoek.center
x, y = int(x * 1.05), int(y * 1.05)
muis = pygame.image.load("muis.png")
muis = pygame.transform.scale(muis, (x, y))
muis_rechthoek = muis.get_rect()
muis_rechthoek.center = center
else:
print('ik heb honger')
We maken variabele center aan, en slaan daarin de locatie van de muis op (het middelpunt).
while True:
#hier staat bij jou alle code om te bewegen
if muis_rechthoek.colliderect(kaas_rechthoek):
print('hap hap')
#de muis wordt groter:
x, y = muis_rechthoek.size
center = muis_rechthoek.center
x, y = int(x * 1.05), int(y * 1.05)
muis = pygame.image.load("muis.png")
muis = pygame.transform.scale(muis, (x, y))
muis_rechthoek = muis.get_rect()
muis_rechthoek.center = center
else:
print('ik heb honger')
Maak nu de x en de y een klein beetje groter.
while True:
#hier staat bij jou alle code om te bewegen
if muis_rechthoek.colliderect(kaas_rechthoek):
print('hap hap')
#de muis wordt groter:
x, y = muis_rechthoek.size
center = muis_rechthoek.center
x, y = int(x * 1.05), int(y * 1.05)
muis = pygame.image.load("muis.png")
muis = pygame.transform.scale(muis, (x, y))
muis_rechthoek = muis.get_rect()
muis_rechthoek.center = center
else:
print('ik heb honger')
Laat het muisplaatje opnieuw in.
while True:
#hier staat bij jou alle code om te bewegen
if muis_rechthoek.colliderect(kaas_rechthoek):
print('hap hap')
#de muis wordt groter:
x, y = muis_rechthoek.size
center = muis_rechthoek.center
x, y = int(x * 1.05), int(y * 1.05)
muis = pygame.image.load("muis.png")
muis = pygame.transform.scale(muis, (x, y))
muis_rechthoek = muis.get_rect()
muis_rechthoek.center = center
else:
print('ik heb honger')
Stel nu de grootte van de muis in met de nieuwere,
iets grotere x en y.
while True:
#hier staat bij jou alle code om te bewegen
if muis_rechthoek.colliderect(kaas_rechthoek):
print('hap hap')
#de muis wordt groter:
x, y = muis_rechthoek.size
center = muis_rechthoek.center
x, y = int(x * 1.05), int(y * 1.05)
muis = pygame.image.load("muis.png")
muis = pygame.transform.scale(muis, (x, y))
muis_rechthoek = muis.get_rect()
muis_rechthoek.center = center
else:
print('ik heb honger')
Vraag weer de rechthoek op (omdat de muis nu groter is)
while True:
#hier staat bij jou alle code om te bewegen
if muis_rechthoek.colliderect(kaas_rechthoek):
print('hap hap')
#de muis wordt groter:
x, y = muis_rechthoek.size
center = muis_rechthoek.center
x, y = int(x * 1.05), int(y * 1.05)
muis = pygame.image.load("muis.png")
muis = pygame.transform.scale(muis, (x, y))
muis_rechthoek = muis.get_rect()
muis_rechthoek.center = center
else:
print('ik heb honger')
Zet de muis op hetzelfde midden (dat is mooier)
while True:
#hier staat bij jou alle code om te bewegen
if muis_rechthoek.colliderect(kaas_rechthoek):
print('hap hap')
#de muis wordt groter:
x, y = muis_rechthoek.size
center = muis_rechthoek.center
x, y = int(x * 1.05), int(y * 1.05)
muis = pygame.image.load("muis.png")
muis = pygame.transform.scale(muis, (x, y))
muis_rechthoek = muis.get_rect()
muis_rechthoek.center = center
else:
print('ik heb honger')
Er is nog wel iets niet helemaal in de haak!
Er is nog wel iets niet helemaal in de haak!
De muis blijft de kaas aanraken, dus de muis blijft groeien. Dat ga jij straks oplossen.