微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 pygame 模块中,按右键,只会加载列表中的第一个精灵

如何解决在 pygame 模块中,按右键,只会加载列表中的第一个精灵

在pygame模块中,按右键,只加载列表中的第一个精灵

WR=[pygame.image.load('R2.png'),pygame.image.load('R3.png'),pygame.image.load('R4.png'),pygame.image.load('R5.png'),pygame.image.load('R6.png'),pygame.image.load('R2.png')]
char=pygame.image.load('char.png')

def redrawGameWindow():
    global wc
        
    screen.blit(BG,(0,0))
    if wc+1>=27:
        wc=0
                       
    if right:
        screen.blit(WR[wc//3],(x,y))
        
    else:
        screen.blit(char,y))

解决方法

您忘记增加 wc

wc += 1

然而,WR 是一个包含 6 个元素(Surfaces)的列表,但最大订阅索引为 9(27/3 == 9)。这将导致“IndexError: list index out of range” 错误。
确保索引在列表的范围内。使用len()获取列表长度并在订阅索引超过列表长度时重启动画(wc = 0):

def redrawGameWindow():
    global wc
        
    wc += 1
    if wc // 3 >= len(WR):
        wc = 0
       
    screen.blit(BG,(0,0))                   
    if right:
        screen.blit(WR[wc // 3 ],(x,y))  
    else:
        screen.blit(char,y))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。