programmeren
in python
Jaar 2 - Module 1 - Les 4: Collision Detection - Deel 2
welkom!
Ik heb op je feedback gereageerd.
Neem even de tijd om dat te lezen.
welkom!
Zet je vel nu weer als naambordje neer
vandaag gaan we leren
-
Code van week 3 samen bespreken
-
Nadenken over extra elementen in je simulatie
klassenregels in 009
- Als er iemand aan het woord is, is de rest stil
- Hou je hand op tot iemand de beurt krijgt van mij
- Het is handig als niet iedereen door elkaar praat
nu even opfrissen!
demo (vorige week begin)
Helemaal bovenaan laden we PyGame en time in
#laad modules in
import pygame
import time
Stukken code pygame
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
Stukken code pygame
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]
Stukken code pygame
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]
Stukken code pygame
Dan komt er een lus, met while True:
while True:
# doe de hele tijd terwijl het spel draait alles
# in de while True:
Stukken code pygame
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)
Stukken code pygame
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)
Stukken code pygame
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]
Stukken code pygame
Deze code kijkt of de muis de zijkanten raakt, en draait dan om.
Dezelfde twee stukken staan er voor de leeuw.
Stukken code pygame
Dezelfde twee stukken staan er voor de leeuw.
Stukken code pygame
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.
Stukken code pygame
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.
Stukken code pygame
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.
Nieuwe code van vorige week
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.
deze codes oefenen
Schrijf steeds per blok op wat de code doet.
Net als vorige week oefenen we de codes weer op de werkbladen in 011.
deze codes oefenen
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.
"collision detection"
Vorige week hebben we er codes bij gezet voor voedsel en collision detection.
demo
"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:
"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:
Proefwerkvraag...!
"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:
Vergeet niet om nieuwe elementen ook te "blitten" (tekenen)
screen.blit(kaas, kaas_rechthoek)
"collision detection"
Vorige week hebben we er codes bij gezet voor voedsel en collision detection.
"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')
"collision detection"
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')
"collision detection"
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')
"collision detection"
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')
"collision detection"
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')
"collision detection"
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')
"collision detection"
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')
"collision detection"
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')
"collision detection"
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')
"collision detection"
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')
"collision detection"
Er is nog wel iets niet helemaal in de haak!
demo
"collision detection"
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.
klassenregels in 011
- Blijf op je plek
- Heb je een vraag?
- Lees eerst de hele opgave!
- Plak je roze postit op je monitor
- Wil je aftekenen?
- Kijk eens goed of je alle bullet points hebt!
- Plak je gele postit op je monitor
- Scherm op zwart?
- Verplaats je stoel naar het midden van de klas
- Draai je gezicht naar voren
zodadelijk op de computer...
Python Klas 2 - Module 3 - Les 5
By Felienne
Python Klas 2 - Module 3 - Les 5
- 489