1

我已经搜索了一些问题,但它并没有真正回答我的问题。

我是 Python 和 Pygame 的新手,现在已经有几个星期了 :),正在做一个关于游戏开发的教程。我在这里有一个代码,它应该在屏幕上显示我的错误图像,但它没有,而是我得到一个黑色窗口......我哪里出错了?

import pygame, sys


pygame.init()
WIDTH, HEIGHT = (800, 600)
screen=pygame.display.set_mode((WIDTH, HEIGHT),0, 32)
img_bug = pygame.image.load("bug.png").convert_alpha()

clock = pygame.time.Clock()    
FPS = 24
fivesecondinterval = FPS * 5
totalframes = 0

while True: #Never ending loop
for event in pygame.event.get():   
    if event.type==pygame.QUIT:           
        pygame.quit()
        sys.exit()

totalframes += 1

if totalframes % fivesecondinterval ==0 :

screen.blit(img_bug, (200, 200))
pygame.display.flip()   
clock.tick(FPS)
4

1 回答 1

0

您必须正确缩进您的代码。这应该有效:

import pygame, sys

pygame.init()
WIDTH, HEIGHT = (800, 600)
screen=pygame.display.set_mode((WIDTH, HEIGHT),0, 32)
img_bug = pygame.image.load("bug.png").convert_alpha()

clock = pygame.time.Clock()    
FPS = 24
fivesecondinterval = FPS * 5
totalframes = 0

while True: #Never ending loop
    for event in pygame.event.get():   
        if event.type==pygame.QUIT:           
            pygame.quit()
            sys.exit()

    totalframes += 1

    if totalframes % fivesecondinterval ==0 :
        screen.blit(img_bug, (200, 200))
        pygame.display.flip()   
            clock.tick(FPS)

重要的部分是(在修复每个导致异常的缩进错误之后):

if totalframes % fivesecondinterval==0:
    screen.blit(img_bug, (200, 200))
    pygame.display.flip()   
        clock.tick(FPS)

部分代码在循环内。

于 2013-09-15T14:14:01.280 回答