Невозможно получить ввод с клавиатуры pygame

Я только начинаю изучать python для проекта, который требует ввода с клавиатуры. Из того, что я читал, pygame – лучший способ сделать это. К сожалению, мне не удалось заставить KEYDOWN работать. Единственное событие pygame.event.get()MOUSEMOTION . Код, который мне нужен, будет выглядеть примерно так:

 import pygame def main(): pygame.init() while True: for event in pygame.event.get() if(event.type == pygame.KEYDOWN) if(event.key==pygame.K_LEFT) cry_because_it_worked() 

Я не уверен, что я делаю неправильно. Я прочитал еще несколько вопросов о вводе клавиатуры, и все они предлагают использовать код, который, насколько я могу судить, идентичен. Например, первый блок кода первого ответа на этот вопрос: как получить ввод с клавиатуры в pygame? pygame.init() возвращает (6,0) , что, я считаю, означает, что все модули были инициализированы правильно. Я использую python 3.4.3 и pygame 1.9.2. Любая помощь будет принята с благодарностью.

Изменить: Вот мой цикл:

 import pygame ... def handleKeyInput(enigma): pygame.init() print("before loop") while True: for event in pygame.event.get(): print(event.type) #Always prints 4, which is the value of MOUSEMOTION print(event.type == pygame.KEYDOWN) #Always prints false if event.type == pygame.KEYDOWN: #and then a bunch of if statements for all letters 

One Solution collect form web for “Невозможно получить ввод с клавиатуры pygame”

Правильный код для использования pygame.event.get будет выглядеть так:

 import pygame from pygame.locals import * for event in pygame.event.get(): if event.type == QUIT: # if closing application pygame.quit() sys.exit() elif event.type == KEYDOWN: if event.key == K_LEFT: cry_because_it_worked() 

События Pygame – это не только нажатия клавиш. Это могут быть движения мыши и другие вещи. Важно сначала сначала проверить тип события. Вот почему мы ставим следующее:

 if event.type == KEYDOWN: 

Следующее, что вам нужно сделать, это проверить нажатый ключ. Вы делаете это, читая атрибут key объекта event :

 if event.key == K_LEFT: 

Поэтому в вашей программе вы проверяете event.type чтобы убедиться, что событие event.type клавишей, а затем вы проверите event.key чтобы узнать, какой ключ был нажат.

  • Pygame - компиляция exe с Cx_Freeze
  • Как получить размер изображения в pygame (python)
  • Как избавиться от поверхностей пигама?
  • Pygame - окно и класс спрайтов - python
  • Как загрузить Pygame для Python 3.5.1?
  • Как я должен заниматься латентностью в разработке игр?
  • Почему сцена принимает менеджера сцены в качестве параметра?
  • Могу ли я переписать мои дорогие функции pygame в C?
  • Python - лучший язык программирования в мире.