Handleiding: Gebruikersinterface met Python

Vergelijkbare documenten
P O P Y T H O N P R O G R AMMER EN: G A N Z E N B O R D

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 8 mei 2014

X. Grafische elementen

P O P Y T H O N P R O G R AMMER EN: G A N Z E N B O R D

Graphics. Small Basic graphics 1/6

Foto s verkleinen en Foto s in elkaar over laten lopen

DOBBELSTEEN 2.0. Stap-voor-stap instructie

Herhalingsoefeningen

OEFENINGEN PYTHON REEKS 5

Gemaakt door: Tessa Romviel & Pepijn t Hoen Leerlingen VWO 6 SG Spieringshoek Als onderdeel voor het vak Informatica

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

PowerPoint Instructie. Een presentatie maken met gesproken commentaar

Formulieren o.b.v. Vrije Overzichten

Scratch: Introductie. Wat is Scratch? Lekker dansen!

Hoe moet je een prachtige presentatie maken?

Start Word en sluit (of vink uit) zonodig het taakvenster Aan de slag

Handleiding Paint 2003

2. Je eerste Prezi Klik op new Prezi. Je komt op volgend scherm uit:

Nieuwe invoercellen voeg je toe door de cursor tussen twee cellen in te zetten, en invoer in te tikken.

Tekenobjecten Module 12

eerste voorbeelden in Java

HANDLEIDING POWERPOINT 2010

Handleiding SpaceClaim

Handleiding Kerstpuzzel 2 - Photoshop + PowerPoint 2007 (2010)

Deel 5: PowerPoint Scannend

Baltie. Dubbelklik op de snelkoppeling van Baltie. Klik op Modes 1. Building. Klik op Scene Open/New...: Zoek je eigen map op.

door Vaksectie Informatica Alberdingk Thijm College ACS-logo

Processing. Met Processing kun je hele mooie tekeningen maken niet met stiften of potloden, maar door tegen de computer te zeggen wat je wil zien.

TIPS EN HINTS VOOR BEGINNERS. Klik nu in de Menu balk op het menu item ELEMENT. Onder het woord Element gaat er nu vervolgens nu een sub menu open

Handleiding Albupad - Album Page Designer versie 1600

Gebruikershandleiding voor de persoonlijke verpakking.

SketchUp L D tekenen

BEGINNER JAVA Inhoudsopgave

mailgroep photoshop Copyright

Dictaat Beginners bloesemtocht in PowerPoint 2007

WERKEN MET INKSCAPE. Klik op het logo van Inkscape om het programma te openen. Je ziet het volgende startscherm.

Handleiding help Sinterklaas!

Inhoudsopgave Voorwoord 5 Voordat je begint 6 Wat heb je nodig? 7 De website bij het boek 7 Voor ouders, verzorgers en leraren

Handleiding Windows Movie Maker

Zelf een spel maken met GameMaker Les 1: Laat iets bewegen!

Afbeeldingen geschikt maken voor je webshop

PowerPoint Basis. PowerPoint openen. 1. Klik op Starten 2. Klik op Alle programma s 3. Klik op de map Microsoft Office

15. Tabellen. 1. wat rijen, kolommen en cellen zijn; 2. rijen en kolommen invoegen; 3. een tabel invoegen en weer verwijderen;

HTA Software - Klachten Registratie Manager Gebruikershandleiding

Handleiding voor Envelop - PP 2007

Handleiding universitaire beeldbank

Cursus Powerpoint 2003

1. Open het programma KompoZer Het grote witte vlak is een nog lege webpagina. Deze gaan we nu van inhoud voorzien.

PRO NOORD SJ KRIMPEN a/d LEK TELEFOON: FAX: INTERNET:

PAGINA BEHEER. Heel belangrijk is dat u niet vergeet op te slaan anders gaan al uw wijzigingen verloren, deze knop vind u bovenin de pagina!!!

Workshop 11. Geef in als Naam: Cdhoes Breedte: 12 cm Hoogte: 12 cm. Klik op OK

Handleiding Albupad - Album Page Designer versie 1700

3. Tekentechnieken. Sommige symbolen zijn duidelijk, andere niet. Van links naar rechts staat het symbool (en de werkbalkknop) voor

Muziek toevoegen in PowerPoint Doelstelling

Handleiding Powerpoint presentatie

Start GameMaker en open een nieuw spel (menu: Zorg ervoor dat GameMaker in Advanced Mode

Photoshop CS2. Januari Jan van der Aa. Bij opstarten zetten we eerst de benodigde instellingen goed.

Medische Beelden Portaal AZ Sint-Lucas

Handleiding JPrintScreen

Hoofdstuk 8 - Snelfiches Word

Printscreen maken: Een van de veel gestelde vragen is, hoe maak ik een printscreen, we gaan hier een drie tal manieren bekijken.

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

Game Maker: Avonturier en skelet

Zelf een spel maken met GameMaker. LES 1 Laat iets bewegen!

Basisinstructie GameMaker 8.0

Hotspot hyperlinks maken voor afbeeldingen in PPT 2007, incl. geluid 1. Algemeen en de werking van de hotspot hyperlinks tijdens presenteren

Cursus KeyCreator. Basisoefening 4:

De Sense HAT heeft een temperatuursensor waarmee je de temperatuur. #lees de temperatuur van de sensor en sla op als temp

HTML Graphics. Hans Roeyen V 3.0

WELKOM BIJ UNICODING PROCESSING. Unicoding 1. Handleiding docent LES 1 DEEL A: Vormen, coördinaten en kleuren

PowerPoint Mijn naam is; Cees van Aarle

Herhaling. Individuele Oefening. Individuele oefening. Tips en technieken in Alice. Vis in de zee Houdt van zeewier

Inhoudsopgave: Handleiding Paint

Introductie testtooling Wink

1. Bestand-> open nieuw transparant 900 pixels breed en 600 pixels hoog 2. Materialen, voorgrondkleur #89a5a8 en achtergrond kleur #183d53

Kennismaking. Versies. Text. Graph: Word Logo voorbeelden verschillende versies. Werkomgeving

Module 2: Wat is Scratch?

Zelf albumbladen maken in Word 2003

ASBAK in ALIBRE DESIGN

Faststone enkele tips. Fotoclub Positief 25 augustus 2015

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Les in Flash nr. 1: Afbeeldingen in een vorm gieten en laten bewegen

Scratch! Les 5. Werkblad 6 Aan de slag met. 52 talentenkijker LEERLINGENWERKBLADEN

Actie-instellingen maken voor afbeeldingen in PPT Werking van de actie-instelling voor afbeeldingen tijdens de presentatie

ACAD Handleiding 4 - het tekenen van de clowns -

Microsoft Word Kolommen en tabellen

Handleiding. Door: Jos Reuling. Project: Tandwielen. Datum: 10 maart 2010 (bewerking Henk Reuling, )

Handleiding bij de workshop Animatie in Microsoft PowerPoint Hoe maak je een animatie in Microsoft PowerPoint 2010? Handleiding voor kinderen

ICT -idee 1. Umapper: Maak je eigen landkaart met toegevoegde informatie.

Help. Snel op weg. Help Inhoud. Informatie uit de kaart kunt u in slechts drie stappen opvragen. Klik hier voor de instructie.

Dit is een artikel uit de Peter van Olmen serie: Handleidingen Voor Iedereen AUDACITY HANDLEIDING. Voor audacity versie 1.2.6

Het hele scherm besturen

Digitale vormgeving Wordpress deel 1

Inhoudsopgave Template verhaal... 2 Eigenschappen van een pagina... 4 Achtergrond invoegen vanuit classroomsuite... 5 Achtergrond eigen database...

PowerPoint LL. Heemscan

Microsoft PowerPoint Basics Hoe maak je een presentatie in Microsoft PowerPoint 2010? Handleiding voor kinderen

Cursus KeyCreator. Oefening 14: Hekken

1 Een presentatie bekijken

3.0 Voorkennis. Voorbeeld 1: Los op: 6x + 28 = 30 10x.

Transcriptie:

Handleiding: Gebruikersinterface met Python Inhoudsopgave Gebruikershandleiding PyGame... 2 Algemene mal voor een PyGame venster... 2 Scherm coördinaten... 2 Algemene mal voor een PyGame spel... 2 Achtergrond van venster aanpassen met een kleur... 3 Achtergrond van een venster aanpassen met een plaatje... 4 Plaatje tonen op scherm... 5 Reageren op input van toetsenbord... 6 Schrijf tekst in venster... 7 De muis zichtbaar maken op het scherm:... 7 Reageren op input van de muis... 7 Muiskliks... 7 Muisbewegingen... 8 Geluid afspelen... 8 Kleuren... 8 Tekenen... 9 Scherm verversen (na het tekenen)... 9 Scherm vullen met een kleur... 9 Lijnen tekenen... 9 Rechthoek tekenen... 9 Cirkel tekenen... 10 Boog tekenen... 10 Animaties / bewegende beelden... 10

Gebruikershandleiding PyGame Algemene mal voor een PyGame venster De volgende code toont een venster m.b.v. de Pygame module. # Naam programma:... # Het programma doet:... # Programma gemaakt door:... import pygame # -------- CONSTANTEN EN GLOBALE VARIABELEN -------- WINDOW_SIZE = [1050, 750] #venstergrootte # -------- FUNCTIE DEFINITIES -------- # -------- PYGAME INITIALISATIE -------- pygame.init() screen = pygame.display.set_mode(window_size) #open scherm pygame.display.set_caption("scherm titel") #geef een titel aan het scherm # -------- HOOFDLOOP VAN HET PROGRAMMA -------- # -------- AFSLUITING -------- pygame.quit() #sluit scherm af Scherm coördinaten Als je scherm 1050 bij 750 is (zoals in dit voorbeeld), dan is: (0,0) het coördinaat van de linker bovenhoek. (1050,0) het coördinaat van de rechterbovenhoek (0,750) het coördinaat van de linkeronderhoek, en (1050,750) het coördinaat van de rechteronderhoek. Algemene mal voor een PyGame spel Bij een spel zit herhaling, namelijk: zolang de speler niet af is (of je sluit het scherm af door op het kruisje te klikken), krijgt hij weer de beurt. Hiervoor gebruiken we een boolean vlag met de naam spel_is_afgelopen. Om te beginnen krijgt spel_is_afgelopen de waarde False. Zolang niet spel_is_afgelopen blijven we doorspelen. Als je op kruisje drukt om het venster af te sluiten, dan wordt spel_is_afgelopen op True gezet en stopt het programma.

# Naam programma:... # Het programma doet:... # Programma gemaakt door:... import pygame # -------- CONSTANTEN EN GLOBALE VARIABELEN -------- WINDOW_SIZE = [1050, 750] # Afmeting van spelscherm instellen (in pixels: [breedte, hoogte]) # -------- FUNCTIE DEFINITIES -------- # -------- PYGAME INITIALISATIE -------- pygame.init() screen = pygame.display.set_mode(window_size) # Spelscherm maken (en opslaan in een variabele screen) pygame.display.set_caption("scherm titel") # Titel van spelscherm instellen clock = pygame.time.clock()# Zorgt voor verversingssnelheid van het scherm # -------- HOOFDLOOP VAN HET PROGRAMMA -------- # Deze boolean laat ons spel straks lopen, totdat er op het kruisje wordt gekikt om af te sluiten # (deze zet dan spel_is_afgelopen op True) spel_is_afgelopen = False while not spel_is_afgelopen: # --- Check gebeurtenissen (zoals muiskliks enz.) --- for event in pygame.event.get(): if event.type == pygame.quit: # Het kruisje is aangeklikt spel_is_afgelopen = True # Het spel moet eindigen dus we zetten spel_is_afgelopen op True # --- Ververs het beeldschem met de nieuwe graphics --- clock.tick(30) # Ververs scherm met 30 frames per seconde pygame.display.flip() # Ververs het beeldscherm met de bijgewerkte versie # -------- AFSLUITING -------- pygame.quit() # Sluit het scherm af 1. pygamespelmal.py Achtergrond van venster aanpassen met een kleur screen.fill((255,255,255)) # Maak de achtergrond wit 2. vensterachtergrond.py

Als je een specifieke kleur vaker gaat gebruiken, doe je er goed aan om de kleur als constante te definiëren en daarna te gebruiken: # -------- CONSTANTEN EN GLOBALE VARIABELEN -------- ACHTERGROND_GROEN = ( 10, 254, 10 ) # RGB Kleur groen voor achtergrond # <hier is wat code weggelaten > screen.fill(achtergrond_groen) # Maak achtergrond groen 3. vensterachtergrond.py Achtergrond van een venster aanpassen met een plaatje Eerst moet je het plaatje laden. Let er op dat je de juiste extensie gebruikt (bijvoorbeeld.jpg of.png) en dat het plaatje in dezelfde map zit als je python code. # -------- CONSTANTEN EN GLOBALE VARIABELEN -------- # Afbeelding voor achtergrond scherm (spelbord) achtergrond_plaatje = pygame.image.load("spelbord.jpg") 4. vensterachtergrond.py Daarna moet je binnen de while-loop de volgende code gebruiken zodat het achtergrond plaatje daadwerkelijk getoond wordt. # Bepaal afmeting (rectangle van het plaatje) afmetingbord = achtergrond_plaatje.get_rect() # Projecteer het plaatje op het scherm screen.blit(achtergrond_plaatje,afmetingbord) 5 vensterachtergrond.py Video met uitleg voor het toevoegen van een achtergrond plaatje: http://youtu.be/4yqikncmjns

6. vensterachtergrond.py Plaatje tonen op scherm Eerst moet je het plaatje laden. Let er op dat je de juiste extensie gebruikt (bijvoorbeeld.jpg of.png) en dat het plaatje in dezelfde map zit als je python code. # -------- CONSTANTEN EN GLOBALE VARIABELEN -------- # Afbeelding voor achtergrond scherm (spelbord) plaatje = pygame.image.load("dice1.jpg") 7. Plaatje tonen op scherm

Daarna moet je binnen de while-loop de volgende code gebruiken zodat het plaatje daadwerkelijk getoond wordt. Geeft de coördinaten van de linkerbovenhoek van het plaatje. screen.blit(plaatje, (100,50) ) # Zet het plaatje op het scherm op (100,50) 8 vensterachtergrond.py Reageren op input van toetsenbord In de while-loop die je al hebt controleer je (continu) of er een toets is aangeslagen. Dit heet een gebeurtenis afhandeling (in het Engels: event handeling). # --- Check gebeurtenissen (zoals muiskliks enz.) --- for event in pygame.event.get(): if event.type == pygame.quit: # Het kruisje is aangeklikt spel_is_afgelopen = True # Het spel moet eindigen dus we zetten spel_is_afgelopen op True # Gebruiker heeft een toets ingedukt elif event.type == pygame.keydown: # Figure out if it was an arrow key. if event.key == pygame.k_left: print("keydown: arrow left") elif event.key == pygame.k_right: print("keydown: arrow right") elif event.key == pygame.k_up: print("keydown: arrow up") elif event.key == pygame.k_down: print("keydown: arrow down") elif event.key == pygame.k_escape: print("keydown: ESC") done = True 9. toetseventafhandeling.py Soms wil je ook dat als de gebruiker een toets loslaat dat er iets gebeurt: # Gebruiker laat een toets los elif event.type == pygame.keyup: # If it is an arrow key if event.key == pygame.k_left: print("keyup: arrow left") elif event.key == pygame.k_right: print("keyup: arrow right") elif event.key == pygame.k_up: print("keyup: arrow up") elif event.key == pygame.k_down: print("keyup: arrow down") 10. toetseventafhandeling.py Een overzicht van alle codes is te vinden op: http://thepythongamebook.com/en:glossary:p:pygame:keycodes

Schrijf tekst in venster Je moet eerst aangeven welke lettertype en grootte je wilt. Daarna ook de kleur en welke tekst. Als laatste moet je het naar het scherm afdrukken (met.blit( ) ). font = pygame.font.font(none, 36) # Bepaal lettertype, hier standaard met grootte 36 tekst = font.render("dit laten zien... ", True, WHITE) # Sla in een variabele de tekst en kleur op screen.blit(tekst, [10, 50]) # Drukt de tekst in de variabele af, op positie vanaf linker-bovenhoek [horizontaal, vertikaal] 11. teksttonen.py De muis zichtbaar maken op het scherm: De muis cursor zichtbaar maken doe je met: # -------- PYGAME INITIALISATIE -------- pygame.init() pygame.mouse.set_visible(1)# Show the mouse cursor (let op: kun je niet op een zwarte achtergrond zien En onzichtbaar met: pygame.mouse.set_visible(0)# Hide the mouse cursor Reageren op input van de muis Muiskliks Hiermee bepaal je of er op een muisknop gelikt is, en waar de muis dan op het scherm stond. Je kunt de code voor de muispositie ook elders gebruiken zonder dat er geklikt is op de muis. # --- Check gebeurtenissen (zoals muiskliks enz.) --- for event in pygame.event.get(): if event.type == pygame.quit: # Het kruisje is aangeklikt spel_is_afgelopen = True # Het spel moet eindigen dus we zetten spel_is_afgelopen op True elif event.type == pygame.mousebuttondown: pos = pygame.mouse.get_pos() mouse_xpos = pos[0] mouse_ypos = pos[1] print("mouse clicked at coordinates: ("+str(mouse_xpos)+","+ str(mouse_ypos)+")") 12. muiseventafhandeling.py https://www.youtube.com/watch?v=onak8vzici4&feature=youtu.be

Muisbewegingen Om een plaatje te laten bewegen over het scherm, dan moet elke keer als het scherm opnieuw getekend worden: 1) Teken het achtergrond plaatje 2) Bepaal de muispositie 3) Teken het plaatje op de muispositie 4) Ververs het scherm screen.blit(achtergrond_plaatje, ACHTERGROND_POSITIE) # Teken de achtergrond muis_pos = pygame.mouse.get_pos() # Bepaal huidige positie van muis screen.blit(speler_plaatje, muis_pos) # Zet het plaatje op het scherm pygame.display.flip()# Ververs het scherm clock.tick(60) 13. plaatjesbewegenmetmuis.py Geluid afspelen Eerst moet je het geluid eenmalig aan een variabele toekennen. # -------- PYGAME INITIALISATIE -------- pygame.init() click_sound = pygame.mixer.sound("laser5.ogg") En daarna kun je het afspelen: click_sound.play() Kleuren Kleuren geef je met hun rgb waarde weer. Dit kun je het beste bovenin je bestand bij de Constanten definiëren. Hier een paar voorbeelden red = (255,0,0) green = (0,255,0) blue = (0,0,255) darkblue = (0,0,128) white = (255,255,255) black = (0,0,0) pink = (255,200,200)

Om een kleur te gebruiken hoef je alleen de naam te gebruiken, zoals hier waar we de scherm zwart maken: screen.fill(black) Tekenen Bij het tekenen op het scherm moet je twee dingen doen: 1) Aangeven wat er getekend moet worden, bv. screen.fill( 100, 100, 100 ) 2) Het scherm verversen, bv. met pygame.display.flip() Scherm verversen (na het tekenen) Na het tekenen moet je altijd het volgende aanroepen zodat het scherm ververst wordt en het dus ook daadwerkelijk zichtbaar wordt: pygame.display.flip() Scherm vullen met een kleur screen.fill(color) Voorbeeld: screen.fill( 255, 255, 255 ) #255, 255, 255 geven de kleur aan Lijnen tekenen pygame.draw.lines(screen, kleur, gesloten, lijstmetpunten, lijndikte) Bij gesloten geef je True aan als de eerste en laatste punt met elkaar verbonden moeten worden (en dus een gesloten figuur maakt), en anders False. Bij lijstmetpunten geef je met vierkante haken een lijst met punten mee, bv: [ (100,100), (150,200), (200,400)] Bij lijndikte geef je lijndikte in pixels aan. Voorbeelden: o een lijn tussen twee punten A(100,100) en B(150,200): pygame.draw.lines(screen, white, False, [(100,100), (150,200)], 1) o een vette rode V: pygame.draw.lines(screen, red, False, [(100,100), (150,200), (200,100)], 3) Rechthoek tekenen pygame.draw.rect(screen, kleur, (x,y,breedte,hoogte), lijndikte) (x,y,breedte,hoogte): Geef met ronde haken de linker-bovenhoek aan (met x en y), en de breedte en de hoogte van de rechthoek

Met lijndikte geef je de lijndikte in pixels aan. Als je 0 opgeeft, wordt de rechthoek helemaal gevuld. Voorbeeld: pygame.draw.rect(screen, red, [100, 100, 30, 30], 10) Cirkel tekenen pygame.draw.circle(screen, kleur, (x,y), straal, lijndikte) Met (x,y) geef je de coördinaten van de middelpunt aan Met lijndikte geef je de lijndikte in pixels aan. Als je 0 opgeeft, wordt de cirkel helemaal gevuld. Voorbeeld: pygame.draw.circle(screen, red, (300,300), 50, 5) Boog tekenen pygame.draw.arc(screen, kleur, (x,y,breedte,hoogte), start_hoek, stop_hoek, lijndikte) Tekent een boog (gedeelte van een ellips) Geef met ronde haken de linker-bovenhoek aan (met x en y), en de breedte en de hoogte van de rechthoek die de hele ellips omvat start_hoek, stop_hoek: de hoek op een eenheidscirkel in radialen (niet in graden) waar de boog begint en eindigt. Bij gelijke breedte en hoogte wordt (een deel van) een cirkel getekend. Voorbeeld: pygame.draw.arc(screen, green, (500,500,100,50), 0, 2, 1) Animaties / bewegende beelden Om beelden te laten bewegen moet je code in je while-loop stoppen dat: 1) Het oude wegveegt (bijvoorbeeld screen.fill(white) of screen.fill(black)) 2) Het nieuwe tekent (bijvoorbeeld met pygame.draw.circle( )), maar deze keer op een verschillende plek door de coördinaten aan te passen. 3) Het scherm verversen met: pygame.display.update() Uitgewerkt voorbeeld: Stel je wilt een rechthoek laten vliegen van rechts naar links. Dan teken je een rechthoek op ergens links op het scherm, dus met x-coördinaat gelijk aan 0, bijvoorbeeld een rode rechthoek (30 bij 30 breed) op coördinaat (0,100):

pygame.draw.rect(screen, red, [0, 100, 30, 30], 0) Om van links naar rechts te bewegen moet het x-coördinaat steeds veranderen, steeds iets groter worden. Om dit te doen maak je buiten de while-loop een variabele aan dat begint met de waarde 0. x_coordinaat = 0 In de while-loop laat je de rechthoek tekenen, maar gebruikt nu de variabele x-coördinaat: pygame.draw.rect(screen, red, [x_coordinaat, 100, 30, 30], 0) Na het tekenen verhoog je de x-coordinaat zodat hij de volgende keer iets verder naar rechts getekend wordt: x_coordinaat += 1 Het geheel ziet er dan ongeveer zo uit: spel_is_afgelopen = False x_coordinaat = 0 while not spel_is_afgelopen: # --- Check gebeurtenissen (zoals muiskliks enz.) --- for event in pygame.event.get(): if event.type == pygame.quit: # Het kruisje is aangeklikt spel_is_afgelopen = True # Het spel moet eindigen dus we zetten spel_is_afgelopen op True screen.fill(black) # het oude scherm wegvegen pygame.draw.rect(screen, red, [x_coordinaat, 100, 30, 30], 0) x_coordinaat += 1 # x-coordinaat verhogen om plaatje naar rechts te schuiven # --- Ververs het beeldschem met de nieuwe graphics --- clock.tick(60) # Ververs scherm met 60 frames per seconde pygame.display.flip() # Ververs het beeldscherm met de bijgewerkte versie # -------- AFSLUITING -------- pygame.quit() # Sluit het scherm af