Python在我播放时没有响应。也不会出现语法错误。不知道哪里出了问题。我试着运行另一款我制作的游戏,它运行得很好,所以我不认为这是我的电脑问题。错误消息
这是我的代码:
import pygame
pygame.init()
screen = pygame.display.set_mode((800,600))
pygame.display.set_caption("Draft")
icon = pygame.image.load("doctor.png")
pygame.display.set_icon(icon)
white = (255,255,255)
black = (0,0,0) red = (255,0,0)
green = (0,255,0)
blue = (0,0,255)
def draw_ground():
groundx = 20
groundy = 30
Ground = pygame.Rect(groundx,groundy,width = 800,height = 20)
pygame.draw.rect(screen,green,Ground)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
draw_ground()
它还没有完成,我试着先测试一下,然后再继续。
你的代码中有一个错别字:
black = (0,0,0) red = (255,0,0)
必须是
black = (0,0,0)
red = (255,0,0)
然而,还有更多。
pygame.Rect
不接受关键字参数:
Ground = pygame.Rect(groundx,groundy,width = 800,height = 20)
Ground = pygame.Rect(groundx,groundy,800,20)
您必须通过调用pygame.display.update()
或pygame.display.flip()
来更新显示:
clock = pygame.time.Clock()
running = True
while running:
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# clear dispaly
screen.fill(0)
# draw objects
draw_ground()
# update dispaly
pygame.display.flip()
典型的PyGame应用程序循环必须:
- 限制每秒帧数以限制
pygame.time.Clock.tick
- 通过调用
pygame.event.pump()
或pygame.event.get()
来处理事件。 - 根据输入事件和时间(分别为帧)更新游戏状态和对象位置
- 清除整个显示或绘制背景
- 绘制整个场景(
blit
所有对象) - 通过调用
pygame.display.update()
或pygame.display.flip()
来更新显示