Pygame Basics

Pygame er eit bibliotek som kan brukast til spill (naturlig nok) og andre program som krever grafikk og bevegelse. Den offisielle webstaden for Pygame er www.pygame.org.  Pygame er ikkje innebygd i Anaconda/Spyder, så det må installerast vha programmet pip.exe. Du må først finna ut kor det er på maskinen din. Det kan feks. liggja på C:\Users\<din brukar>\AppData\Local\Continuum\anaconda3\Scripts. programmet Ledetektst og flytt til den mappa som pip ligg på vha. kommandoen cd <mappenavn>. (cd står for change directory). Så kan du installera pygame med kommandoen

"pip install pygame"

Deretter kan du gjerne testa at pygame funkar ved å gå til konsollet i Spyder og skriva run -m pygame.examples.aliens

Hvis du ser ein gjeng med flygande tallerkenar fly over skjermen, er du klar til å programmera :)

Komma i gang

Det første du må gjera er å importera og initialisera pygame:

import pygame

pygame.init()

Opna eit vindu

For å opna eit vindu på  400 x 300 px, kan vi skriva:

vindu = pygame.display.set_mode((400,300))

For vårt nyopna vindu gjeld følgande:

Fargar

Det er lurt å definera alle fargar som du har tenkt å bruka slik:

<fargenavn> = (r,g,b)

Eksempel: (eg bruker vanligvis store bokstavar for konstantar)

SVART = (0, 0, 0)
RAUD   = (255,0,0)
GROEN = (0,255,0)
BLAA = (0,0,255)
ROSA = (255,200,200) green = (0,255,0)

Tegning

Pygame har mange funksjonar for å fargeleggja og tegna ting i vinduet. Merk at for at disse skal visast må du  pygame.display.update(). Meir om dette under. Eksempel på kommandoer du kan bruka er:

vindu.fill(farge)
pygame.draw.lines(vindu, farge, lukka, punktliste, tykkelse)
pygame.draw.rect(vindu, farge, (x,y,bredde,høgde), tykkelse)
pygame.draw.circle(vindu, farge, (x,y), radius, tykkelse)
pygame.draw.arc(vindu, farge, (x,y,bredde,høgde), startvinkel, stoppvinkel, tykkelse)

Oppdatering av skjermen

Dei du gjer i vinduet, som å fylla det med ein farge, eller å tegna ein figur, vises ikkje med ein gong.

Istaden må du bruka denne funksjonen:

pygame.display.update()

Lukking av vindu med quit-knappen (raud X i Windows, raud sirkel på Mac)

For å få dette til må vi gjera to ting:

  1. Laga ein uendelig loop, som ser etter event, dvs. om brukar har trykt ein tast, brukt musa eller liknande.
  2. Ein kode som  sjekkar om vi har fått eit QUIT event, og håndterer dette.
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()

Denne koden gjer følgande:

Eksempel på program som lagar enkle figurar.

Animasjonar

For å få td. ein figur til å bevega seg, må du ha kode innanfor ei løkke som:

Få bevegelsen til å gå fortare eller saktare

Det er minst to måtar du kan få dette til på.

Du kan for eksempel skriva til pygame.time.delay(5)inne i løkka. Dette får programmet til å venta 5 millisekunder.

Ein betre måte er å bruka ei klokke:

  1. Putt koden clock = pygame.time.Clock() nær starten på programmet. Den må vera etter pygame.init() men utanfor hovedløkka.
  2. Inne i løkka puttar du feks. koden clock.tick(30) der 30 gir deg 30 oppdateringar i sekunder (frames per second)

LENKER