如何在Pygame中移动矩形

问题描述

我正在尝试在Pygame中制作一个移动矩形。我了解我首先需要使用pygame.draw.rect()。我暂时在使用在线IDE,Repl.it。我只需要确保此代码正确即可。

import pygame,sys
pygame.init()
screen = pygame.display.set_mode((1000,600))
x = 500
y = 300
white = (255,255,255)
player = pygame.draw.rect(screen,white,(x,y,50,40))

while True:
  for event in pygame.event.get():
    if pygame.event == pygame.QUIT:
      pygame.QUIT
      sys.exit()
    if pygame.event == pygame.KEYDOWN:
      if pygame.key == pygame.K_LEFT:
        x -= 5
      if pygame.event == pygame.K_RIGHT:
        x += 5
  pygame.display.update()

谢谢您的投入。

解决方法

您的代码无法正常工作。

在一些地方您正在检查事件的错误部分,多数情况下您在多个地方都存在相同的错误。

当坐标更改时,您也不会重新绘制矩形。

import pygame,sys
pygame.init()
screen = pygame.display.set_mode((1000,600))
x = 500
y = 300
black = (  0,0)
white = (255,255,255)

while True:
    # Handle Events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:            # <<-- HERE use event.type
            pygame.quit()                        # <<-- HERE use pygame.quit()
            sys.exit()
        elif event.type == pygame.KEYDOWN:       # <<-- HERE use event.type
            if event.key == pygame.K_LEFT:       # <<-- HERE use event.key
                x -= 5
            elif event.key == pygame.K_RIGHT:    # <<-- HERE use event.key
                x += 5

    # Reapint the screen
    screen.fill( black )                                     # erase old rectangle
    player = pygame.draw.rect(screen,white,(x,y,50,40))    # draw new rectangle
    pygame.display.update()