我如何让pygame显示我的精灵?



我不确定问题在哪里,或者是否需要更多的代码来查看错误

我是这样调用精灵的:

walkRight = [pygame.image.load('sprites/R1.png'), pygame.image.load('sprites/R2.png'), pygame.image.load('sprites/R3.png'), pygame.image.load('sprites/R4.png'), pygame.image.load('sprites/R5.png'), pygame.image.load('sprites/R6.png'), pygame.image.load('sprites/R7.png'), pygame.image.load('sprites/R8.png'), ]
walkLeft = [pygame.image.load('sprites/L1.png'), pygame.image.load('sprites/L2.png'), pygame.image.load('sprites/L3.png'), pygame.image.load('sprites/L4.png'), pygame.image.load('sprites/L5.png'), pygame.image.load('sprites/L6.png'), pygame.image.load('sprites/L7.png'), pygame.image.load('sprites/L8.png')]
bg = pygame.image.load('sprites/bg.jpg')
char = pygame.image.load('sprites/standing.png')

所有文件都在文件夹Gmaepy拼写是故意的在该文件夹中包含main.py和有一个包含所有精灵的sprites文件夹。我认为这可能是在我的redrawGameWindow()函数,但我不熟悉这一切仍然

def redrawGameWindow():
# We have 8 images for our walking animation, I want to show the same image for 3 frames
# so I use the number 16 as an upper bound for walkCount because 24 / 3 = 8. 8 images shown
# 3 times each animation.
global walkCount
win.blit(bg, (0, 0)) # Draws the background image at (0,0)
if walkCount + 1 >= 24:
walkCount = 0
if left:
win.blit(walkLeft[walkCount//3], (x, y))
walkCount += 1
elif right:
win.blit(walkRight[walkCount//3], (x, y))
walkCount += 1
else:
win.blit(char, (x, y))
walkCount = 0
pygame.display.update()

当我在powershell中运行程序时,背景显示,但角色精灵无处可见。当我显示一个矩形时,它工作得很好,但我在精灵

时遇到了麻烦

这是一个缩进的问题。在任何情况下,您都必须将精灵blit:

def redrawGameWindow():
# We have 8 images for our walking animation, I want to show the same image for 3 frames
# so I use the number 16 as an upper bound for walkCount because 24 / 3 = 8. 8 images shown
# 3 times each animation.
global walkCount
win.blit(bg, (0, 0)) # Draws the background image at (0,0)
if walkCount + 1 >= 24:
walkCount = 0
# INDENTAITON
#<--|
if left:
win.blit(walkLeft[walkCount//3], (x, y))
walkCount += 1
elif right:
win.blit(walkRight[walkCount//3], (x, y))
walkCount += 1
else:
win.blit(char, (x, y))
walkCount = 0
pygame.d

最新更新