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

Pygame使用Sprite组时blob图像未在目标位置显示仅出现在左上角无报错

问题原因

Pygame精灵组的draw()方法默认读取精灵对象的rect属性作为绘制坐标,你在Enemy类的初始化逻辑中仅将坐标赋值给了自定义的self.x、self.y变量,没有同步更新到self.rect的坐标上。get_rect()方法返回的矩形默认坐标为(0, 0),因此所有怪物都固定显示在屏幕左上角。

修复方案

修改Enemy类的初始化代码,将传入的坐标直接赋值给rect属性即可:

class Enemy(pygame.sprite.Sprite):
    def __init__(self, x, y):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.image.load('img/blob.png')
        self.rect = self.image.get_rect()
        # 直接给rect赋值坐标,不需要额外维护自定义x/y变量
        self.rect.x = x
        self.rect.y = y

如果后续需要开发怪物移动逻辑,直接修改self.rect.x、self.rect.y的数值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:12:00