Python 圆赢';不要在游戏中抽签

Python 圆赢';不要在游戏中抽签,python,python-3.x,pygame,Python,Python 3.x,Pygame,我正在pygame中试验精灵, 在本例中,圆在以下代码中成功绘制: class Player(pygame.sprite.Sprite): def __init__(self): # line required to propertly create the sprite pygame.sprite.Sprite.__init__(self) # create a plain rectangle for the sprinte image

我正在pygame中试验精灵, 在本例中,圆在以下代码中成功绘制:

class Player(pygame.sprite.Sprite):
    def __init__(self):
        # line required to propertly create the sprite
        pygame.sprite.Sprite.__init__(self)

        # create a plain rectangle for the sprinte image
        self.image = pygame.transform.scale(player_img, (50, 40))
        self.image.set_colorkey(BLACK)

        # find the rectangle that encloses the image
        self.rect = self.image.get_rect()
        self.radius = 20
        pygame.draw.circle(self.image, RED, self.rect.center, self.radius)
        # center the sprite on screen
        self.rect.center = (WIDTH / 2, HEIGHT - 50)

        self.speedx = 0  
但当我修改矩形中心后放置它时,它不会绘制,如下所示:

class Player(pygame.sprite.Sprite):
    def __init__(self):
        # line required to propertly create the sprite
        pygame.sprite.Sprite.__init__(self)

        # create a plain rectangle for the sprinte image
        self.image = pygame.transform.scale(player_img, (50, 40))
        self.image.set_colorkey(BLACK)

        # find the rectangle that encloses the image
        self.rect = self.image.get_rect()
        self.radius = 20
        
        # center the sprite on screen
        self.rect.center = (WIDTH / 2, HEIGHT - 50)
        pygame.draw.circle(self.image, RED, self.rect.center, self.radius)

        self.speedx = 0

为什么会出现这种情况?

当然是的,因为您正在
self.image
上绘制圆圈。如果更改矩形的位置,则只是更改图像稍后将显示的位置
blit
<代码>自我。图像没有位置。它只是一个曲面对象,左上角总是(0,0)

在以下代码中,圆圈绘制在
self.image

self.rect=self.image.get_rect()
pygame.draw.circle(红色,self.rect.center,self.radius)
在下文中,圆将绘制在
slef.image
曲面的边界之外,因为圆将绘制在稍后图像将被
blit
的位置:

self.rect=self.image.get_rect()
self.rect.center=(宽度/2,高度-50)
pygame.draw.circle(self.image,红色,self.rect.center,self.radius)
线
self.rect.center=(宽度/2,高度-50)
不会更改
self.image
,它只会更改绘制圆的位置