#python #events #pygame #key #keydown
Вопрос:
Я работаю над небольшим проектом на Python, просто чтобы узнать больше о языке, но столкнулся с проблемой. Я пытаюсь установить случайную величину, и всякий раз, когда я нажимаю соответствующую цифру на клавиатуре, я выигрываю игру. Однако я не знаю, смогу ли я установить событие.ключевая переменная в строке или другая переменная, которая будет меняться вместе со случайным числом.
import pygame
import sys
import random
pygame.init()
key = random.randint(0,9)
key2 = ('K_', key)
window = pygame.display.set_mode((300, 300))
pygame.display.set_caption('Text Editor')
font_color = (0, 150, 250)
font_obj = pygame.font.SysFont('forte', 25)
text_obj = font_obj.render(str(key), True, font_color)
won = font_obj.render('you won', True, font_color)
while True:
window.fill((255,255,255))
window.blit(text_obj,(22,0))
for event in pygame.event.get():
if event.type==pygame.QUIT:
pygame.quit()
sys.exit()
if event.type==pygame.KEYDOWN:
if event.key==key2:
window.blit(won,(22,50))
print('you won')
pygame.display.update()
Ответ №1:
В Pygame ссылки на ключи выполняются с помощью констант, определенных в pygame.locals
. Вы должны сравнить свое ключевое событие с одним из них:
from pygame.locals import *
num_keys = [K_0, K_1, K_2, K_3, K_4, K_5, K_6, K_7, K_8, K_9]
target = random.choice(num_keys)
# ...
while True:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN and event.key == target:
window.blit(won, (22,50))
print('you won')