有人可以告诉我此python代码在哪里出错吗?

时间:2020-07-24 14:45:05

标签: python pygame

这是一个简单的pygame代码,我在其中插入了一个屏幕,一个粉红色的矩形并尝试移动它。 pygame窗口中的矩形没有移动。 这意味着'**'中的代码无法正常工作。 我该如何解决?

import pygame, sys

pygame.init()

width = 800
height = 600

pink = (244,133,227)

player_pos = [400, 300]
player_size = 50

screen = pygame.display.set_mode((width,height))

game_over = False

while not game_over:

    for event in pygame.event.get():

        if event.type == pygame.QUIT:
            sys.exit()

**      if event.type == pygame.KEYDOWN:
            x = player_pos[0]
            y = player_pos[1]
            if event.type == pygame.K_LEFT:
                x -= player_size
            elif event.type == pygame.K_RIGHT:
                x += player_size
            player_pos = [x, y]
    screen.fill((0,0,0))  **

    pygame.draw.rect(screen, pink, (player_pos[0], player_pos[1], player_size, player_size))

    pygame.display.update()

1 个答案:

答案 0 :(得分:3)

密钥存储在key属性中,而不是type属性中。参见pygame.event

if event.type== pygame.K_LEFT:

if event.key == pygame.K_LEFT:

查看示例:

import pygame, sys

pygame.init()

width = 800
height = 600
pink = (244,133,227)
player_pos = [400, 300]
player_size = 50
screen = pygame.display.set_mode((width,height))

game_over = False
while not game_over:

    for event in pygame.event.get():

        if event.type == pygame.QUIT:
            sys.exit()

        if event.type == pygame.KEYDOWN:
            x = player_pos[0]
            y = player_pos[1]
            if event.key == pygame.K_LEFT:
                x -= player_size
            elif event.key == pygame.K_RIGHT:
                x += player_size
            player_pos = [x, y]

    screen.fill((0,0,0))  
    pygame.draw.rect(screen, pink, (player_pos[0], player_pos[1], player_size, player_size))
    pygame.display.update()