Кто-нибудь знает, почему в Pygame не работает событие keydown - PullRequest
1 голос
/ 23 апреля 2020

** Это ощущение, что мой код пробовал event.get как для нажатия клавиш, так и для нажатия мыши, это просто не работает, и я также помещаю их в функцию, я могу управлять ими, но я не знаю, что из-за этого

def bullet_launch():
    event_list = pygame.event.get()
    for event in event_list:
        if event.type == pygame.MOUSEBUTTONDOWN:

            print("a")
            cache = {
                'image': pygame.transform.scale(pygame.image.load('assets/bullet.png'), (bullet_scale)),
                'ypos': player["ypos"],
                'xpos': player["xpos"],
                'rad': math.radians(int(math.degrees(player["rad"])))
            }
            bullets.append(cache)

1 Ответ

1 голос
/ 23 апреля 2020

pygame.event.get() удаляет события из очереди. Если у вас есть несколько циклов событий, то только один из циклов получит события.
Получите список событий только один раз за кадр и передайте список функциям и методам, которые оценивают события:

Например:

def bullet_launch(event_list):
    for event in event_list:
        if event.type == pygame.MOUSEBUTTONDOWN:
            # [...]
while run:

    event_list = pygame.event.get()
    for event in event_list:
        if event.type == pygame.QUIT:
            run = False

    # [...]

    bullet_launch(event_list)

    # [...]
...