Pygame 在函数中出现淡出错误

Pygame fading error when it is in a function

我正在 Pygame 中制作角色扮演游戏,但我遇到了一个错误,它破坏了淡入淡出的点。发生的事情是,当我尝试将褪色代码放入函数中时,我不必多次使用它,它完全跳过了褪色部分,只是闪烁。

这是工作代码

import pygame
import time

delay = time.sleep
white = 255,255,255
black = 0,0,0

pygame.display.set_caption("Liam's RPG")
pygame.init()
pygame.font.init()
screen = pygame.display.set_mode((800,600))

clock = pygame.time.Clock()
menuIntro = False

while not menuIntro:
    menuIntro = True
    logo = pygame.image.load("logo.png").convert()
    logo.set_alpha(0)
    for alpha in range(255):
        screen.fill(black)
        screen.blit(logo, (100,35))     
        logo.set_alpha(alpha)
        clock.tick(200)
        pygame.display.update()
    delay(1.5)

这是导致淡入淡出跳跃和混乱的代码

import pygame
import time

delay = time.sleep
white = 255,255,255
black = 0,0,0

pygame.display.set_caption("Liam's RPG")
pygame.init()
pygame.font.init()
screen = pygame.display.set_mode((800,600))

clock = pygame.time.Clock()
menuIntro = False

sprite = ""
fade_x = 0
fade_y = 0
clocking = clock.tick(10)

def fading(sprite,clocking,fade_x,fade_y):  
    logo = pygame.image.load(sprite + ".png").convert()
    logo.set_alpha(0)
    for alpha in range(255):
        screen.fill(black)
        screen.blit(logo, (fade_x,fade_y))     
        logo.set_alpha(alpha)
        clocking

while not menuIntro:
    menuIntro = True
    sprite = 'logo'
    fade_x = 100
    fade_y = 35
    clocking = clock.tick(200)
    fading(sprite,clocking,fade_x,fade_y)
    pygame.display.update()
    delay(1.5)

Here is the logo thing 我正在尝试淡入,它需要与文件

在同一目录中

在正确的代码中,for alpha 循环中有 tickupdate。在不正确的代码中,您在该循环之外有 tickupdate - 它无法按预期工作。