3.4 Meer acties
Een vorm kopiëren met clone
Met clone() kun je een exacte kopie maken van een vorm. De kopie heeft dezelfde kleur, grootte en positie als het origineel.
import play
cirkel = play.new_circle(color='red', x=-100, radius=30)
kopie = cirkel.clone()
kopie.x = 100
Je hebt nu twee rode cirkels: het origineel links en de kopie rechts.
Opdracht 3.4.a: Kloonleger
In deze opdracht gebruik je @play.when_key_pressed (zie 4.1 Toetsenbord) en play.random_number (zie 3.3 Willekeurige waarden).
Maak een programma waarbij elke keer als je op spatie drukt, er een kopie van een cirkel wordt gemaakt op een willekeurige positie.
Klik hier voor een tip!
Gebruik clone() om een kopie te maken en verander daarna de x en y van de kopie met play.random_number().
Klik hier voor de oplossing!
import play
cirkel = play.new_circle(color='blue', radius=20)
@play.when_key_pressed("space")
def kloon():
kopie = cirkel.clone()
kopie.x = play.random_number(-350, 350)
kopie.y = play.random_number(-250, 250)
Het spel stoppen met stop_program
Met play.stop_program() kun je het spel beëindigen vanuit je code. Dit is handig voor een game-over scherm.
import play
play.new_text(words="Druk op Escape om te stoppen", font_size=30)
@play.when_key_pressed("escape")
def stop():
play.stop_program()
Opdracht 3.4.b: Game over
In deze opdracht gebruik je het global keyword. Ken je dat nog niet? Kijk dan bij 6.1 Een score bijhouden.
Maak een programma waarbij:
- Een score begint op 5
- Elke keer als je op spatie drukt, gaat de score met 1 omlaag
- Als de score op 0 staat, stopt het programma
Klik hier voor de oplossing!
import play
score = 5
tekst = play.new_text(words="Score: " + str(score), font_size=40)
@play.when_key_pressed("space")
def verminder():
global score
score = score - 1
tekst.words = "Score: " + str(score)
if score == 0:
play.stop_program()