import pygame
pygame.init()
gameDisplay= pygame.display.set_mode((800,600))
pygame.display.set_caption("My game!")
gameEnd = False
gameDisplay.fill(white)
pygame.draw.rect(gameDisplay, black, [400,300,10,10])
pygame.display.update()
lead_x = 300
lead_y = 300
while not gameEnd:
for start in pygame.event.get():
if start.type == pygame.QUIT:
gameEnd = True
if start.type == pygame.KEYDOWN:
if start.key == pygame.K_LEFT:
lead_x -= 10
if start.key == pygame.K_RIGHT:
lead_x += 10
pygame.quit()
答案 0 :(得分:3)
在调用lead_x
时必须使用坐标(lead_y
,pygame.draw.rect
)。
清除显示(.fill()
),绘制矩形(pygame.draw.rect()
)和更新显示(pygame.display.update()
)必须在主循环中完成。因此,窗口会不断重绘,并在每帧的当前位置绘制矩形:
import pygame
pygame.init()
gameDisplay= pygame.display.set_mode((800,600))
pygame.display.set_caption("My game!")
black = ( 0, 0, 0)
white = (255,255,255)
lead_x = 300
lead_y = 300
gameEnd = False
while not gameEnd:
for start in pygame.event.get():
if start.type == pygame.QUIT:
gameEnd = True
if start.type == pygame.KEYDOWN:
if start.key == pygame.K_LEFT:
lead_x -= 10
if start.key == pygame.K_RIGHT:
lead_x += 10
# clear window
gameDisplay.fill(white)
# draw rectangle at the current position (lead_x, lead_y)
pygame.draw.rect(gameDisplay, black, [lead_x,lead_y,10,10])
# update the display
pygame.display.update()