问题描述
我没有收到任何错误,但它不起作用。我尝试了很多东西,但它从来没有动过。我什至有时会复制准备好的脚本,但它们也没有移动。请解释我做错了什么。从现在开始谢谢。
import pygame
pygame.init()
screen = pygame.display.set_mode((800,600))
red = 100
green = 100
blue = 100
top = 265
left = 365
width = 70
height = 70
pygame.draw.rect(screen,[red,green,blue],[left,top,width,height])
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
left += 0.1
pygame.display.flip()
解决方法
实际上矩形确实会移动。但是,您必须在应用程序循环中绘制矩形:
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
left += 0.1
screen.fill(0)
pygame.draw.rect(screen,[red,green,blue],[left,top,width,height])
pygame.display.flip()
典型的 PyGame 应用程序循环必须:
- 通过
pygame.event.pump()
或pygame.event.get()
处理事件。 - 根据输入事件和时间(分别为帧)更新游戏状态和对象位置
- 清除整个显示或绘制背景
- 绘制整个场景(
blit
所有对象) - 通过
pygame.display.update()
或pygame.display.flip()
更新显示