如何在 pygame 中移动矩形
How to move a rectangle in 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()
感谢您的意见。
您的代码接近工作。
有几个地方你检查了事件的错误部分,大多数地方你在多个地方有同样的错误。
而且当 co-ordinates 改变时你不是 re-drawing 矩形。
import pygame, sys
pygame.init()
screen = pygame.display.set_mode((1000,600))
x = 500
y = 300
black = ( 0, 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()
我正在尝试在 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()
感谢您的意见。
您的代码接近工作。
有几个地方你检查了事件的错误部分,大多数地方你在多个地方有同样的错误。
而且当 co-ordinates 改变时你不是 re-drawing 矩形。
import pygame, sys
pygame.init()
screen = pygame.display.set_mode((1000,600))
x = 500
y = 300
black = ( 0, 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()