Jaar 2 - Module 1 - Les 4: Omdraaien & Voedsel verplaatsen
Het thema van dit jaar is PyGame
In de simulatie van dit blok ga jij een dier kiezen en een bijbehorend voedsel.
Je dier ook visueel laten omdraaien aan de rand
Het voedsel verplaatsen door het veld
Nog even een herhaling van vorige les.
snelheid = [1, 0]
while dier_leeft:
#alle andere codes hier
#beweeg de schildpad
schildpad_rechthoek = schildpad_rechthoek.move(snelheid)
if schildpad_rechthoek.right > 600:
snelheid[0] = -snelheid[0]
time.sleep(0.1)
print('Helaas, je schildpad is overleden')
Nog even een herhaling van vorige les.
Wat doet deze code?
snelheid = [1, 0]
while dier_leeft:
#alle andere codes hier
#beweeg de schildpad
schildpad_rechthoek = schildpad_rechthoek.move(snelheid)
if schildpad_rechthoek.right > 600:
snelheid[0] = -snelheid[0]
time.sleep(0.1)
print('Helaas, je schildpad is overleden')
Nog even een herhaling van vorige les.
Zet de code even op pauze
snelheid = [1, 0]
while dier_leeft:
#alle andere codes hier
#beweeg de schildpad
schildpad_rechthoek = schildpad_rechthoek.move(snelheid)
if schildpad_rechthoek.right > 600:
snelheid[0] = -snelheid[0]
time.sleep(0.1)
print('Helaas, je schildpad is overleden')
Nog even een herhaling van vorige les.
Wat doet deze code?
snelheid = [1, 0]
while dier_leeft:
#alle andere codes hier
#beweeg de schildpad
schildpad_rechthoek = schildpad_rechthoek.move(snelheid)
if schildpad_rechthoek.right > 600:
snelheid[0] = -snelheid[0]
time.sleep(0.1)
print('Helaas, je schildpad is overleden')
Nog even een herhaling van vorige les.
Kijkt of het dier al bij de rechterkant is
snelheid = [1, 0]
while dier_leeft:
#alle andere codes hier
#beweeg de schildpad
schildpad_rechthoek = schildpad_rechthoek.move(snelheid)
if schildpad_rechthoek.right > 600:
snelheid[0] = -snelheid[0]
time.sleep(0.1)
print('Helaas, je schildpad is overleden')
Nog even een herhaling van vorige les.
Wat doet deze code?
snelheid = [1, 0]
while dier_leeft:
#alle andere codes hier
#beweeg de schildpad
schildpad_rechthoek = schildpad_rechthoek.move(snelheid)
if schildpad_rechthoek.right > 600:
snelheid[0] = -snelheid[0]
time.sleep(0.1)
print('Helaas, je schildpad is overleden')
Nog even een herhaling van vorige les.
Stelt de snelheid in (maar beweegt niets!)
snelheid = [1, 0]
while dier_leeft:
#alle andere codes hier
#beweeg de schildpad
schildpad_rechthoek = schildpad_rechthoek.move(snelheid)
if schildpad_rechthoek.right > 600:
snelheid[0] = -snelheid[0]
time.sleep(0.1)
print('Helaas, je schildpad is overleden')
Nog even een herhaling van vorige les.
snelheid = [1, 0]
while dier_leeft:
#alle andere codes hier
#beweeg de schildpad
schildpad_rechthoek = schildpad_rechthoek.move(snelheid)
if schildpad_rechthoek.right > 600:
snelheid[0] = -snelheid[0]
time.sleep(0.1)
print('Helaas, je schildpad is overleden')
Wat doet deze code?
Nog even een herhaling van vorige les.
Verplaatst de rechthoek van het dier met stapjes uit variabele snelheid
snelheid = [1, 0]
while dier_leeft:
#alle andere codes hier
#beweeg de schildpad
schildpad_rechthoek = schildpad_rechthoek.move(snelheid)
if schildpad_rechthoek.right > 600:
snelheid[0] = -snelheid[0]
time.sleep(0.1)
print('Helaas, je schildpad is overleden')
Nog even een herhaling van vorige les.
Wat doet deze code?
snelheid = [1, 0]
while dier_leeft:
#alle andere codes hier
#beweeg de schildpad
schildpad_rechthoek = schildpad_rechthoek.move(snelheid)
if schildpad_rechthoek.right > 600:
snelheid[0] = -snelheid[0]
time.sleep(0.1)
print('Helaas, je schildpad is overleden')
Nog even een herhaling van vorige les.
Draait de snelheid om, het dier gaat nu de andere kant op
snelheid = [1, 0]
while dier_leeft:
#alle andere codes hier
#beweeg de schildpad
schildpad_rechthoek = schildpad_rechthoek.move(snelheid)
if schildpad_rechthoek.right > 600:
snelheid[0] = -snelheid[0]
time.sleep(0.1)
print('Helaas, je schildpad is overleden')
Het dier stuitert nu wel aan de rand, maar dan loopt hij daarna achteruit! Dat is niet zo mooi, dat gaan we vandaag oplossen.
Het dier stuitert nu wel aan de rand, maar dan loopt hij daarna achteruit! Dat is niet zo mooi, dat gaan we vandaag oplossen.
We hebben eerder al transformaties gezien in Pygame, zoals deze:
Het dier stuitert nu wel aan de rand, maar dan loopt hij daarna achteruit! Dat is niet zo mooi, dat gaan we vandaag oplossen.
We hebben eerder al transformaties gezien in Pygame, zoals deze:
schildpad = pygame.transform.rotozoom(schildpad_origineel, 0, 95)
Het dier stuitert nu wel aan de rand, maar dan loopt hij daarna achteruit! Dat is niet zo mooi, dat gaan we vandaag oplossen.
We hebben eerder al transformaties gezien in Pygame, zoals deze:
schildpad = pygame.transform.rotozoom(schildpad_origineel, 0, 95)
Roteer en zoom het plaatje
Het dier stuitert nu wel aan de rand, maar dan loopt hij daarna achteruit! Dat is niet zo mooi, dat gaan we vandaag oplossen.
We hebben eerder al transformaties gezien in Pygame, zoals deze:
schildpad = pygame.transform.rotozoom(schildpad_origineel, 0, 95)
Plaatje om te transformeren
Het dier stuitert nu wel aan de rand, maar dan loopt hij daarna achteruit! Dat is niet zo mooi, dat gaan we vandaag oplossen.
We hebben eerder al transformaties gezien in Pygame, zoals deze:
schildpad = pygame.transform.rotozoom(schildpad_origineel, 0, 95)
0 graden roteren
Het dier stuitert nu wel aan de rand, maar dan loopt hij daarna achteruit! Dat is niet zo mooi, dat gaan we vandaag oplossen.
We hebben eerder al transformaties gezien in Pygame, zoals deze:
schildpad = pygame.transform.rotozoom(schildpad_origineel, 0, 95)
95% zoomen
Het dier stuitert nu wel aan de rand, maar dan loopt hij daarna achteruit! Dat is niet zo mooi, dat gaan we vandaag oplossen.
Er zijn nog meer transformaties, ook flip:
Het dier stuitert nu wel aan de rand, maar dan loopt hij daarna achteruit! Dat is niet zo mooi, dat gaan we vandaag oplossen.
Er zijn nog meer transformaties, ook flip:
schildpad_origineel = pygame.transform.flip(schildpad_origineel, True, False)
Het dier stuitert nu wel aan de rand, maar dan loopt hij daarna achteruit! Dat is niet zo mooi, dat gaan we vandaag oplossen.
Er zijn nog meer transformaties, ook flip:
Flip het plaatje
schildpad_origineel = pygame.transform.flip(schildpad_origineel, True, False)
Het dier stuitert nu wel aan de rand, maar dan loopt hij daarna achteruit! Dat is niet zo mooi, dat gaan we vandaag oplossen.
Er zijn nog meer transformaties, ook flip:
Plaatje om te flippen
schildpad_origineel = pygame.transform.flip(schildpad_origineel, True, False)
Het dier stuitert nu wel aan de rand, maar dan loopt hij daarna achteruit! Dat is niet zo mooi, dat gaan we vandaag oplossen.
Er zijn nog meer transformaties, ook flip:
Flippen we links-recht?
schildpad_origineel = pygame.transform.flip(schildpad_origineel, True, False)
Het dier stuitert nu wel aan de rand, maar dan loopt hij daarna achteruit! Dat is niet zo mooi, dat gaan we vandaag oplossen.
Er zijn nog meer transformaties, ook flip:
Flippen we boven-onder?
schildpad_origineel = pygame.transform.flip(schildpad_origineel, True, False)
Het dier stuitert nu wel aan de rand, maar dan loopt hij daarna achteruit! Dat is niet zo mooi, dat gaan we vandaag oplossen.
De flipcode moet natuurlijk op dezelfde plek staan waar het dier ook omdraait.
Zet jij die zo op de juiste plek?
In de natuur beweegt ook het voedsel. Een plant verwelkt na een tijdje, en een konijntje hopt weg.
In de natuur beweegt ook het voedsel. Een plant verwelkt na een tijdje, en een konijntje hopt weg.
Wij laten het voedsel steeds op een andere plek verschijnen.
Die plek gaan we steeds willekeurig kiezen.
Zo laten we het voedsel verspringen:
import random
while dier_leeft:
sla_x = random.randint(0,500)
sla_y = random.randint(0,500)
sla_rechthoek.center = (sla_x, sla_y)
screen.blit(sla, sla_rechthoek)
#alle andere codes hier
print('Helaas, je schildpad is overleden')
Zo laten we het voedsel verspringen:
import random
while dier_leeft:
sla_x = random.randint(100,400)
sla_y = random.randint(100,200)
sla_rechthoek.center = (sla_x, sla_y)
screen.blit(sla, sla_rechthoek)
#alle andere codes hier
print('Helaas, je schildpad is overleden')
Laad de module random in
Zo laten we het voedsel verspringen:
Kies een willekeurige x (links-rechts)
import random
while dier_leeft:
sla_x = random.randint(100,400)
sla_y = random.randint(100,200)
sla_rechthoek.center = (sla_x, sla_y)
screen.blit(sla, sla_rechthoek)
#alle andere codes hier
print('Helaas, je schildpad is overleden')
Zo laten we het voedsel verspringen:
Kies een willekeurige y (boven-onder)
import random
while dier_leeft:
sla_x = random.randint(100,400)
sla_y = random.randint(100,200)
sla_rechthoek.center = (sla_x, sla_y)
screen.blit(sla, sla_rechthoek)
#alle andere codes hier
print('Helaas, je schildpad is overleden')
Zo laten we het voedsel verspringen:
Zet de sla op de willekeurige plek
import random
while dier_leeft:
sla_x = random.randint(100,400)
sla_y = random.randint(100,200)
sla_rechthoek.center = (sla_x, sla_y)
screen.blit(sla, sla_rechthoek)
#alle andere codes hier
print('Helaas, je schildpad is overleden')
Zo laten we het voedsel verspringen:
Zet de sla op de willekeurige plek
Bij jou is dat natuurlijk een ander voedsel!
import random
while dier_leeft:
sla_x = random.randint(100,400)
sla_y = random.randint(100,200)
sla_rechthoek.center = (sla_x, sla_y)
screen.blit(sla, sla_rechthoek)
#alle andere codes hier
print('Helaas, je schildpad is overleden')
Dat werkte wel maar... Er wordt wel heel veel gesprongen!
Dat werkte wel maar... Er wordt wel heel veel gesprongen!
Dat moet eigenlijk langzamer.
Dat werkte wel maar... Er wordt wel heel veel gesprongen!
Dat moet eigenlijk langzamer.
Dan denk je misschien...: Dat kan met time.sleep()
Laten we dat eens proberen!
Sleep zet het hele programma op pauze, dus ook de schildpad.
Sleep zet het hele programma op pauze, dus ook de schildpad.
Dat willen we niet, we willen dat de schildpad doorloopt terwijl de sla rustig, af en toe, verspringt.
Sleep zet het hele programma op pauze, dus ook de schildpad.
Dat willen we niet, we willen dat de schildpad doorloopt terwijl de sla rustig, af en toe, verspringt.
Daarvoor gaan we een nieuw code leren, die af en toe aan gaat.
Met deze code kun je af en toe iets doen, maar niet de hele tijd.
Met deze code kun je af en toe iets doen, maar niet de hele tijd.
spring_teller = 0
while dier_leeft:
spring_teller = spring_teller + 1
#teken de plaatjes
pygame.display.flip()
screen.fill(background_color)
screen.blit(schildpad, schildpad_rechthoek)
screen.blit(sla, sla_rechthoek)
if spring_teller == 10:
sla_x = random.randint(100,500)
sla_y = random.randint(100,200)
sla_rechthoek.center = (sla_x, sla_y)
spring_teller = 0
Met deze code kun je af en toe iets doen, maar niet de hele tijd.
Begin te tellen bij 0
spring_teller = 0
while dier_leeft:
spring_teller = spring_teller + 1
#teken de plaatjes
pygame.display.flip()
screen.fill(background_color)
screen.blit(schildpad, schildpad_rechthoek)
screen.blit(sla, sla_rechthoek)
if spring_teller == 10:
sla_x = random.randint(100,500)
sla_y = random.randint(100,200)
sla_rechthoek.center = (sla_x, sla_y)
spring_teller = 0
Met deze code kun je af en toe iets doen, maar niet de hele tijd.
Iedere stap doen we er eentje bij
spring_teller = 0
while dier_leeft:
spring_teller = spring_teller + 1
#teken de plaatjes
pygame.display.flip()
screen.fill(background_color)
screen.blit(schildpad, schildpad_rechthoek)
screen.blit(sla, sla_rechthoek)
if spring_teller == 10:
sla_x = random.randint(100,500)
sla_y = random.randint(100,200)
sla_rechthoek.center = (sla_x, sla_y)
spring_teller = 0
Met deze code kun je af en toe iets doen, maar niet de hele tijd.
Teken alle plaatjes zoals eerst
}
spring_teller = 0
while dier_leeft:
spring_teller = spring_teller + 1
#teken de plaatjes
pygame.display.flip()
screen.fill(background_color)
screen.blit(schildpad, schildpad_rechthoek)
screen.blit(sla, sla_rechthoek)
if spring_teller == 10:
sla_x = random.randint(100,500)
sla_y = random.randint(100,200)
sla_rechthoek.center = (sla_x, sla_y)
spring_teller = 0
Met deze code kun je af en toe iets doen, maar niet de hele tijd.
Teken alle plaatjes zoals eerst
(ook de sla)
}
spring_teller = 0
while dier_leeft:
spring_teller = spring_teller + 1
#teken de plaatjes
pygame.display.flip()
screen.fill(background_color)
screen.blit(schildpad, schildpad_rechthoek)
screen.blit(sla, sla_rechthoek)
if spring_teller == 10:
sla_x = random.randint(100,500)
sla_y = random.randint(100,200)
sla_rechthoek.center = (sla_x, sla_y)
spring_teller = 0
Met deze code kun je af en toe iets doen, maar niet de hele tijd.
Iedere 10 stappen doen we deze codes
spring_teller = 0
while dier_leeft:
spring_teller = spring_teller + 1
#teken de plaatjes
pygame.display.flip()
screen.fill(background_color)
screen.blit(schildpad, schildpad_rechthoek)
screen.blit(sla, sla_rechthoek)
if spring_teller == 10:
sla_x = random.randint(100,500)
sla_y = random.randint(100,200)
sla_rechthoek.center = (sla_x, sla_y)
spring_teller = 0
Met deze code kun je af en toe iets doen, maar niet de hele tijd.
Dan gaat de sla naar een andere plek
spring_teller = 0
while dier_leeft:
spring_teller = spring_teller + 1
#teken de plaatjes
pygame.display.flip()
screen.fill(background_color)
screen.blit(schildpad, schildpad_rechthoek)
screen.blit(sla, sla_rechthoek)
if spring_teller == 10:
sla_x = random.randint(100,500)
sla_y = random.randint(100,200)
sla_rechthoek.center = (sla_x, sla_y)
spring_teller = 0
Met deze code kun je af en toe iets doen, maar niet de hele tijd.
En begin weer op 0
spring_teller = 0
while dier_leeft:
spring_teller = spring_teller + 1
#teken de plaatjes
pygame.display.flip()
screen.fill(background_color)
screen.blit(schildpad, schildpad_rechthoek)
screen.blit(sla, sla_rechthoek)
if spring_teller == 10:
sla_x = random.randint(100,500)
sla_y = random.randint(100,200)
sla_rechthoek.center = (sla_x, sla_y)
spring_teller = 0
Dat werkte wel maar... Er wordt wel heel veel gesprongen!
import random
while dier_leeft:
sla_x = random.randint(100,400)
sla_y = random.randint(100,200)
sla_rechthoek.center = (sla_x, sla_y)
screen.blit(sla, sla_rechthoek)
#alle andere codes hier
print('Helaas, je schildpad is overleden')
Zet de sla op de willekeurige plek
Bij jou is dat natuurlijk een ander voedsel!