На PyCharm моя левая и правая клавиши не отвечают - PullRequest
1 голос
/ 22 апреля 2020
#enable pygame mode
import pygame
pygame.init()

#create screen
screen = pygame.display.set_mode((900,600))

#Title + Logo
pygame.display.set_caption("Space Invader")
icon = pygame.image.load("chicken.png")
pygame.display.set_icon(icon)

#Player icon
player_icon = pygame.image.load("spaceship.png")
playerX = 400
playerY = 500

def player(x, y):
    screen.blit(player_icon, (x, y))

#game loop
running = True
while running:

    # backround colour  RGB
    screen.fill((0, 0, 0))

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
            #If key pressed check wether its right or left
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    print("key left pressed")
                if event.key == pygame.K_RIGHT:
                    print("key right pressed")
            if event.type == pygame.KEYUP:
                if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
                    print("key stroke has benn released")


    #Player change in coordinates
    playerX += 0
    playerY += 0

    player(playerX, playerY)
    pygame.display.update()

Во время этого карантина я узнал о программировании игр и игр с использованием python. Я делал это, наблюдая учебник на YouTube. Пожалуйста, не понижайте меня. Я старался изо всех сил, чтобы улучшить свой вопрос в прошлый раз, когда это был мой первый вопрос, и получил 2 оценки. Спасибо за ваше время.

1 Ответ

0 голосов
/ 22 апреля 2020

Это вопрос Отступ . В вашем коде событие pygame.KEYDOWN оценивается только в случае event.type == pygame.QUIT. «Переместить» обработку события pygame.KEYDOWN:

running = True
while running:

    # backround colour  RGB
    screen.fill((0, 0, 0))

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

        # <--| INDENTATION

        #If key pressed check wether its right or left
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                print("key left pressed")
            if event.key == pygame.K_RIGHT:
                print("key right pressed")
        if event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
                print("key stroke has benn released")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...