为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 pygame 窗口动画仅在我移动光标时才起作用

为什么 pygame 窗口动画仅在我移动光标时才起作用

呼唤远方 2023-08-22 16:56:26
屏幕仅在我移动光标时更新有人知道如何解决此问题import pygame, sysdef draw_floor():    screen.blit(floor_surface, (floor_animation, 400))    screen.blit(floor_surface, (floor_animation + 275,400))pygame.init()screen = pygame.display.set_mode((275,512))clock = pygame.time.Clock()bg_surface = pygame.image.load('C:/Users/cuerv/Downloads/flappy-bird-assets-master/flappy-bird-assets-master/sprites/background-day.png').convert()floor_surface = pygame.image.load('C:/Users/cuerv/Downloads/flappy-bird-assets-master/flappy-bird-assets-master/sprites/base.png').convert()floor_animation = 0bird_surface = pygame.image.load('C:/Users/cuerv/Downloads/flappy-bird-assets-master/flappy-bird-assets-master/sprites/bluebird-midflap.png').convert()bird_rect = bird_surface.get_rect(center = (100,256))while True:       for event in pygame.event.get():        if event.type == pygame.QUIT:                     pygame.quit()            sys.exit()        screen.blit(bg_surface, (0, 0))        screen.blit(bird_surface, (bird_rect))                floor_animation -= 1        draw_floor()        if floor_animation <= -275:            floor_animation = 0                    screen.blit(floor_surface, (floor_animation, 400))    pygame.display.update()    clock.tick(120)    enter code here
查看完整描述

2 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

这是缩进的问题。在应用程序循环而不是事件循环中绘制场景:


# application loop

while True:

   

    # event loop

    for event in pygame.event.get():

        if event.type == pygame.QUIT:

         

            pygame.quit()

            sys.exit()

    

    #<--| INDENTATION


    screen.blit(bg_surface, (0, 0))

    screen.blit(bird_surface, (bird_rect))     

    floor_animation -= 1

    draw_floor()

    if floor_animation <= -275:

        floor_animation = 0            

    screen.blit(floor_surface, (floor_animation, 400))


    pygame.display.update()

注意,事件循环仅在事件发生时执行,但应用程序循环是连续执行的。


查看完整回答
反对 回复 2023-08-22
?
PIPIONE

TA贡献1829条经验 获得超9个赞

我猜想在你的函数中,当鼠标悬停在图像上或鼠标在时间 t1 的位置!= t2 的位置时,就会发生动作。还提供代码,以便我们检查可能出现的问题:)


查看完整回答
反对 回复 2023-08-22
  • 2 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信