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/

