如何解决为什么我的角色动画超出范围
我正在尝试使动画效果更适合我的角色。但是,当我运行游戏时,我按下键即可打孔,当动画完成时,游戏会出现错误
\Desktop\python projects\Ultamate Brawl\Ultamite BRAWL.py",line 41,in redrawGameWindow win.blit(PunchR[punchcount//2],(xcor,ycor)) IndexError: list index out of range [Finished in 6.4s]
我看着我的代码,看起来很好
def redrawGameWindow():
global punchcount
global walkcount
win.blit(bg,(-70,0))
if walkcount + 1 >= 27:
walkcount = 0
if punch == True:
if punchcount > 49:
punchcount = 1
win.blit(PunchR[punchcount//2],ycor))
punchcount += 1
elif isjump:
win.blit(superjump,ycor))
elif left:
if walkcount > 49:
walkcount = 1
win.blit(walkLeft[walkcount//4],ycor))
walkcount += 1
elif right:
win.blit(walkRight[walkcount//4],ycor))
walkcount += 1
else:
win.blit(char,ycor))
pygame.display.update()
解决方法
我建议按len()
评估列表PunchR
中的元素数量。如果订阅将超出范围,则设置punchcount=0
。因此,您的算法与列表的长度无关:
if punchcount//2 >= len(PunchR):
punchcount = 0
win.blit(PunchR[punchcount//2],(xcor,ycor))
punchcount += 1
如果只想运行一次动画,则必须在到达列表末尾时设置punch = False
:
if punch == True:
if punchcount//2 >= len(PunchR):
punchcount = 0
punch = False
win.blit(PunchR[punchcount//2],ycor))
punchcount += 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。