如何解决在 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 举报,一经查实,本站将立刻删除。