python - 如何让 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
推荐阅读
- git - 用于量角器测试的 Jenkins 和 Zephyr 集成
- javascript - ffmpeg Image2pipe 命令从 PhantomJS 获取图像流时无限卡住
- excel - 存储行的值(从 i 到 n)以供稍后在代码中使用的正确方法是什么?(VBA查找/匹配功能)
- qt - 如何在 Qt 应用程序中隐藏鼠标光标?
- delphi - 无法在“内部 SD 卡”上创建目录
- c# - 技术名称的区分大小写拼写检查和更正
- java - 如何用某个字符串更新mysql中的列字段?
- typescript - 如何使用 array.filter 更新客户端 angular5 数组?
- ffmpeg - ffmpeg 从 prores 中提取 alpha 通道
- active-directory - 针对 userProxy Full 对象查询 AD-LDS 中的扩展属性