Python I';我对Pygame中的精灵有问题。我希望他们改变他们,所以它看起来像一个动画,我真的不知道如何做到这一点 def redraw(): 全局步行计数 全球x 夜(0,0) 街道(0,-800) 如果walkCount+1>=27: 步行次数=0 如果留下: blit(walkLeft(walkCount//3),(x,y)) 步行次数+=1 埃利夫权利: blit(walkRight(walkCount//3),(x,y)) 步行次数+=1 其他: blit(字符(x,y)) pygame.display.flip()

Python I';我对Pygame中的精灵有问题。我希望他们改变他们,所以它看起来像一个动画,我真的不知道如何做到这一点 def redraw(): 全局步行计数 全球x 夜(0,0) 街道(0,-800) 如果walkCount+1>=27: 步行次数=0 如果留下: blit(walkLeft(walkCount//3),(x,y)) 步行次数+=1 埃利夫权利: blit(walkRight(walkCount//3),(x,y)) 步行次数+=1 其他: blit(字符(x,y)) pygame.display.flip(),python,pygame,Python,Pygame,这就是重新绘制框架的定义walkLeft和walkRight是包含图片的列表 如果event.type==pygame.KEYDOWN: 如果event.key==pygame.K_左或event.key==pygame.K_a: x_变化=-vel 左=真 右=假 elif event.key==pygame.K_RIGHT或event.key==pygame.K_d: x_变化=+水平 右=真 左=假 其他: 右=假 左=假 步行次数=0 如果event.type==pygame.KEYUP

这就是重新绘制框架的定义
walkLeft
walkRight
是包含图片的列表

如果event.type==pygame.KEYDOWN:
如果event.key==pygame.K_左或event.key==pygame.K_a:
x_变化=-vel
左=真
右=假
elif event.key==pygame.K_RIGHT或event.key==pygame.K_d:
x_变化=+水平
右=真
左=假
其他:
右=假
左=假
步行次数=0
如果event.type==pygame.KEYUP:
如果event.key==pygame.K_LEFT或event.key==pygame.K_RIGHT或event.key==pygame.K_d或event.key==pygame.K_a:
x_变化=0
右=假
左=假
这就是肩并肩行走的逻辑

你能帮帮我吗,我是一个noob,我想学习。

walklef(walkCount//3)
是一个函数调用语句。但是,
walkLeft
walkRight
是列表,而不是函数。您必须通过订阅获取列表中的元素(
()
->
[]
):

gameDisplay.blit(walkLeft(walkCount//3),(x,y))

gameDisplay.blit(walkLeft[walkCount//3],(x,y))
gameDisplay.blit(walkRight(walkCount//3)、(x,y))

gameDisplay.blit(walkRight[walkCount//3],(x,y))

我每次运行动画时,它都会显示“参数1必须是pygame.Surface,而不是None”,还有,您会对标识做什么更改?您是对的,这很有帮助,但现在只有当我第一次按“左”键时,它才会更改图片,然后快速切换回原来的位置。@在您的游戏逻辑中,只要按住该键,图像就是动画的。@这是一个新问题。评论部分不打算提出后续问题。如果您有新问题。请阅读并考虑你发现最有用的东西。