Arvutiteaduse instituut
  1. Esileht
  2. Python koolis
EN
Logi sisse

Python koolis

  • Sissejuhatus
  • Teemad
  • PyGame

1. Aken
2. Värvid ja koordinaadid
3. Joonistamine
4. Pildid
5. Tekst
6. Animeerimine
7. Juhtimine klaviatuuriga
8. Juhtimine hiirega
9. Heli
10. Õpetusi

  • ÜLESANDED

7. PyGame: juhtimine klaviatuuriga

Päris Pygame'i teema alguses puutusime kokku sündmuste jälgimisega, ainukeseks sündmuseks oli siis küll vaid programmi sulgemine.

Sündmusi, mida kontrollitakse, on erinevaid:

  • KEYDOWN (klahvivajutus)
  • KEYUP (klahvi lahtilaskmine)
  • MOUSEBUTTONDOWN (hiirenupu vajutus)
  • MOUSEBUTTONUP (hiirenupu lahtilaskmine)
  • MOUSEMOTION (hiire liigutamine)
  • jne

Klaviatuurisündmuste tüüpideks on KEYDOWN ja KEYUP. Järgnev lõik kontrollib lisaks programmi sulgemisele nooleklahvide vajutusi ning reageerib sellele pildi liigutamisega õiges suunas.

x = 200
y = 200
samm = 10
running = True
while running:
    ekraan.fill([255, 255, 255])
    ekraan.blit(pilt, (x,y))
    pygame.display.flip()
    for i in pygame.event.get():
        if i.type == pygame.QUIT:
            running = False
        # Kui sündmuseks on klahvi allavajutamine...
        elif i.type == pygame.KEYDOWN: 
            # ... ja klahviks on nooleklahv üles liikumiseks,...
            if i.key == pygame.K_UP: 
                # ... siis vähendame y-koordinaati
                y = y - samm 
            elif i.key == pygame.K_DOWN:
                y = y + samm
            elif i.key == pygame.K_LEFT:
                x = x - samm
            elif i.key == pygame.K_RIGHT:
                x = x + samm
pygame.quit()

Selleks, et objekti liigutamiseks ei peaks klahvi pidevalt vajutama, võib kasutada klahvi allhoidmise kontrolli set_repeat(delay, interval), lisades enne while-tsüklit näiteks sellise rea:

pygame.key.set_repeat(1,10)

Lisamaterjalid

  • Sündmuste loetelu: http://www.pygame.org/docs/ref/event.html
  • Klaviatuuriga seotud sündmused: http://www.pygame.org/docs/ref/key.html

Creative Commons litsentsiga Autorile viitamine + Mitteäriline eesmärk 3.0 Eesti (CC BY-NC 3.0 EE) - https://creativecommons.org/licenses/by-nc/3.0/ee/

  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused