programmeren
in python
Jaar 2 - Module 1 - Les 4: Omdraaien & Voedsel verplaatsen
Het thema van dit jaar is PyGame
thema jaar 2: Pygame
simulatie
In de simulatie van dit blok ga jij een dier kiezen en een bijbehorend voedsel.
vandaag gaan we leren
-
Je dier ook visueel laten omdraaien aan de rand
-
Het voedsel verplaatsen door het veld
demo (vorige week)
Stuiteren
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')
Stuiteren
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')
Stuiteren
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')
Stuiteren
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')
Stuiteren
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')
Stuiteren
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')
Stuiteren
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')
Stuiteren
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?
Stuiteren
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')
Stuiteren
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')
Stuiteren
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')
Stuiteren
Het dier stuitert nu wel aan de rand, maar dan loopt hij daarna achteruit! Dat is niet zo mooi, dat gaan we vandaag oplossen.
Stuiteren
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:
Stuiteren
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)
Stuiteren
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
Stuiteren
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
Stuiteren
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
Stuiteren
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
Stuiteren
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:
Stuiteren
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)
Stuiteren
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)
Stuiteren
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)
Stuiteren
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)
Stuiteren
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)
Stuiteren
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?
demo
voedsel Bewegen
In de natuur beweegt ook het voedsel. Een plant verwelkt na een tijdje, en een konijntje hopt weg.
voedsel Bewegen
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.
voedsel Bewegen
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')
voedsel Bewegen
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
voedsel Bewegen
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')
voedsel Bewegen
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')
voedsel Bewegen
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')
voedsel Bewegen
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')
demo
voedsel Bewegen
Dat werkte wel maar... Er wordt wel heel veel gesprongen!
voedsel Bewegen
Dat werkte wel maar... Er wordt wel heel veel gesprongen!
Dat moet eigenlijk langzamer.
voedsel Bewegen
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!
demo
voedsel Bewegen
Sleep zet het hele programma op pauze, dus ook de schildpad.
voedsel Bewegen
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.
voedsel Bewegen
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.
Soms iets doen
Met deze code kun je af en toe iets doen, maar niet de hele tijd.
Soms iets doen
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
Soms iets doen
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
Soms iets doen
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
Soms iets doen
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
Soms iets doen
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
Soms iets doen
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
Soms iets doen
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
Soms iets doen
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
demo
voedsel Bewegen
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!
zodadelijk op de computer...
opdrachten deel b
opdrachten deel b
opdrachten deel b
Python Klas 2 - Module 2 - Les 4
By Felienne
Python Klas 2 - Module 2 - Les 4
Leerdoel Module: PyGame gebruiken om een simulatie te maken Lesdoel: Plaatje flippen en voedsel verplaatsen
- 1,023