PyGame:更改精灵表面的起始位置,使其不在(0,0)处开始

时间:2015-07-13 10:08:51

标签: python pygame

有没有办法改变精灵表面的起始位置?

例如,下面的代码用于球精灵。椭圆绘制在(50,50)处,但是添加绘图的精灵表面从(0,0)开始,这意味着只显示了球的一部分。

我需要球精灵表面从左上角开始外出。可以这样做吗?如果是这样,怎么样?

我的代码:

class Ball(pygame.sprite.Sprite):
    """
    This class represents the ball.
    """
    def __init__(self, width, height):
        super().__init__()

        self.image = pygame.Surface([width, height])
        self.image.fill(WHITE)
        self.image.set_colorkey(WHITE)

        pygame.draw.ellipse(self.image, (255,0,0), [50,50,width,height], 10)

        self.rect = self.image.get_rect()

1 个答案:

答案 0 :(得分:0)

懒散的评论引起了共鸣。 我只需要重写精灵的图像直方坐标,以使表面产生在不同的位置。因此,椭圆坐标返回到(0,0),以便在精灵表面上正确绘制,精灵矩形坐标被覆盖为(50,50):

在此处输入代码:

pygame.draw.ellipse(self.image, (255,0,0), [0,0,width,height], 10)

# Fetch the rectangle object that has the dimensions of the image.
# Update the position of this object by setting the values of rect.x and rect.y

self.rect = self.image.get_rect()
self.rect.y = 50
self.rect.x = 50