Python 圆赢';不要在游戏中抽签
我正在pygame中试验精灵, 在本例中,圆在以下代码中成功绘制: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
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
,它只会更改绘制圆的位置