基本上,我希望通过wasd键在屏幕上移动一个矩形。弹出窗口,然后立即关闭,我不知道为什么。我不知道这与我的其他图片有什么不同-显示代码。
256
答案 0 :(得分:2)
您必须运行main()
要移动对象,最好使用pygame.key.get_pressed()
。使用event
,您将不得不一次又一次地按键或以不同的方式书写。
使用get_pressed()
时,您必须使用if
而不是elif
,因为它可以同时为多个键使用True
。
import pygame
pygame.init()
white = (255, 255, 255)
black = (0, 0, 0)
X = 1000
Y = 800
display_surface = pygame.display.set_mode((X, Y))
pygame.display.set_caption('Image')
def main():
px = X/2
py = Y/2
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
#elif event.type == pygame.KEYDOWN:
# if event.key == pygame.K_w:
# py += 5
keys = pygame.key.get_pressed()
if keys[pygame.K_w]:
py -= 5
if keys[pygame.K_a]:
px -= 5
if keys[pygame.K_s]:
py += 5
if keys[pygame.K_d]:
px += 5
display_surface.fill(white)
pygame.draw.rect(display_surface, black, (px, py, 25, 25))
pygame.display.update()
main()