问题描述
def redraw():
global walkCount
global x
night(0,0)
street(0,-800)
if walkCount + 1 >= 27:
walkCount = 0
if left:
gamedisplay.blit(walkLeft(walkCount//3),(x,y))
walkCount += 1
elif right:
gamedisplay.blit(walkRight(walkCount//3),y))
walkCount += 1
else:
gamedisplay.blit(char(x,y))
pygame.display.flip()
所以这是重绘框架的定义。 walkLeft
和 walkRight
是包含图片的列表。
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT or event.key == pygame.K_a:
x_change = -vel
left = True
right = False
elif event.key == pygame.K_RIGHT or event.key == pygame.K_d:
x_change = +vel
right = True
left = False
else:
right = False
left = False
walkCount = 0
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT or event.key == pygame.K_d or event.key == pygame.K_a:
x_change = 0
right = False
left = False
这就是左右行走的逻辑。
你能帮我吗,我是菜鸟,我想学习。
解决方法
walkLeft(walkCount//3)
是一个函数调用语句。但是,walkLeft
和 walkRight
是列表,而不是函数。您必须通过订阅获取列表的元素 (()
-> []
):
gameDisplay.blit(walkLeft(walkCount//3),(x,y))
gameDisplay.blit(walkLeft[walkCount//3],y))
gameDisplay.blit(walkRight(walkCount//3),y))
gameDisplay.blit(walkRight[walkCount//3],y))