You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Pygame加载精灵后仅显示背景不显示角色的问题

问题根因

你的redrawGameWindow函数存在缩进逻辑错误:角色绘制代码全部被包含在if walkCount + 1 >= 24:的条件块内,仅当walkCount即将溢出重置时才会执行一次绘制,绝大多数帧都不会渲染角色,这是看不到精灵的核心原因。

修复方案

将绘制逻辑的缩进向外调整一层,修正后的函数代码如下:

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
    
    # 绘制逻辑提到walkCount判断的外层
    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()

其他可选排查点

如果修改后仍未解决问题,可以依次检查以下项:

  • 确认x、y坐标未超出窗口显示范围:可以临时打印坐标值和窗口分辨率对比,避免精灵被绘制到可视区域外
  • 确认精灵资源加载正常:在资源加载代码后增加print(char.get_size()),如果运行时报错说明图片路径存在问题
  • 确认left、right变量的状态:如果两个变量同时为True,会进入无绘制的分支,初始状态下两者都为False时应该默认渲染站立精灵

内容的提问来源于stack exchange,提问作者Joseph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 22:42:01