Анықтама
Басқару — пайдаланушы енгізуін (пернетақта, тінтуір) кейіпкер қозғалысына айналдыру. Екі тәсіл: оқиғалар арқылы (KEYDOWN — бір басылым) және күй арқылы (key.get_pressed — ұстап тұру).
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
seciru()
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
x -= speed
if keys[pygame.K_RIGHT]:
x += speed | Перне константасы | Перне |
K_LEFT, K_RIGHT, K_UP, K_DOWN | Бағыт көрсеткілері |
K_a, K_d, K_w, K_s | WASD әріптері |
K_SPACE | Бос орын (секіру) |
K_ESCAPE | Esc (шығу) |
Анықтама
KEYDOWN мен get_pressed айырмасы: KEYDOWN — перне БАСЫЛҒАН СӘТТЕ бір рет (секіру, ату); get_pressed — перне ҰСТАЛЫП тұрғанда әр кадрда (жүру). Жүруге — get_pressed, секіруге — KEYDOWN.
Анықтама
Тінтуір оқиғалары: MOUSEBUTTONDOWN — шерту; event.pos — шертілген нүктенің (x; y) координатасы; pygame.mouse.get_pos() — курсордың ағымдағы орны.
Анықтама
Шекара шектеуі — кейіпкер экраннан шығып кетпеуі үшін қозғалыстан кейін координатаны тексеру: if x < 0: x = 0; if x > 750: x = 750.
Деңгей: Оңай Тәсілді таңда
Берілді: Кейіпкер көрсеткілермен жүруі және SPACE-пен секіруі керек.
Табу керек: Әр әрекетке қай тәсіл лайық?
Шешуі:
Жүру — үздіксіз әрекет: get_pressed (ұстап тұрғанда жүре береді). Секіру — бір реттік: KEYDOWN (ұстап тұрса да бір-ақ рет секіреді).
Жауабы: жүру — get_pressed, секіру — KEYDOWN.
Деңгей: Орта Шекарадан шығу
Берілді: LEFT ұсталып тұрса, кейіпкер экранның сол жағынан «шығып кетеді» (x теріс болып кетеді).
Табу керек: Қалай түзетеміз?
Шешуі:
Қозғалыстан кейін шектеу қосу: if x < 0: x = 0 — кейіпкер шекарада «тіреледі».
Жауабы: Әр қозғалыстан кейін координатаны шекарамен шектеу.