Зажатие клавиши в pygame
import pygame
if pygame.key.get_pressed()[K_LEFT]:
print ("Hello")
написал так. А выводит ошибку:
AttributeError: module 'pygame' has no attribute 'key'
Спасибо!
Ответы (3 шт):
Автор решения: Стас
→ Ссылка
Нужно добавить from pygame.locals import * и добавить экран. Без экрана не работает (я не разбирался в этом - может можно и без экрана, но зачем использовать pygame и не создавать окно?)
import pygame
from pygame.locals import * #это добавляет обработку клавиш
pygame.init() #инициализация окна
W = 700
H = 300
sc = pygame.display.set_mode((W, H))#установка размера окна
clock = pygame.time.Clock()#время (не обязательно)
while True:
for i in pygame.event.get(): #обработка нажатия на крестик (выход)
if i.type == pygame.QUIT:
exit()
if pygame.key.get_pressed()[K_LEFT]:
print ("Hello")
clock.tick(60) # частота обновления экрана (FPS) - не обязательно
# но если не добавить ограничение - сильно возрастает нагрузка на процессор
# чем меньше FPS - тем медленнее печатается Hello
pygame.event.pump()
Автор решения: abdurahim Ismoilzoda
→ Ссылка
будет выдавать ошибку если вы не добавите это:
pygame.init()
pygame.display.set_mode((600,600))#размер можете поменять
Тогда окно откроется и закроется для этого нужно сделать цикл. Весь код
import pygame
pygame.init()
pygame.display.set_mode((600,600))
while True:
for i in pygame.event.get():
if i.type == pygame.QUIT:
exit()
keys = pygame.key.get_pressed()
if keys[pygame.K_SPACE]:
print('Hello')
Автор решения: Антон
→ Ссылка
я понял, что там надо просто написать
...
for event in pygame.event.get():
if event.type == pygame.QUIT: #именно эту строчку я забыл написать
if event.key = pygame.K_LEFT:
sprite.move (1) #тут можно что угодно написать.
...