问题描述
我试图在输入某些键时让形状移动,但由于某种原因,形状没有移动。我怀疑是因为显示没有被更新,所以我在移动条件之后添加了 pygame.display.update()
函数来更新它,但这不起作用。我也尝试在运动条件之后渲染形状,但这也不起作用。我假设我需要告诉代码“在按键上移动什么”,但我不太确定如何做到这一点。下面是我的代码:
import sys
win = pygame.display.set_mode((800,500))
color = '#FFFFFF'
# Changing surface color
win.fill(color)
pygame.display.flip()
# shape stuff
x = 50
y = 50
width = 40
height = 60
vel = 50
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# circle
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
x -= vel
if keys[pygame.K_RIGHT]:
x += vel
if keys[pygame.K_UP]:
y -= vel
if keys[pygame.K_DOWN]:
y += vel
pygame.draw.circle(win,(0,255),(400,250),width)
pygame.display.update()
解决方法
您需要在 (x
,y
) 处而不是一直在 (400,250) 处绘制圆:
pygame.draw.circle(win,(0,255),(400,250),width)
pygame.draw.circle(win,(x,y),width)