Забудьте прямоугольник.Вы не "кожа" прямоугольник.Вы загружаете изображение и рисуете его на экране.
class Frog:
def __init__(self, x, y, filename):
self.image = pygame.image.load(filename)
self.rect = self.sprite.get_rect()
self.rect.x = x
self.rect.y = y
#self.rect.w = w # no need it - rect will use image's width
#self.rect.h = h # no need it - rect will use image's height
def draw(self, screen):
screen.blit(self.image, self.rect)
, если вы используете pygame.sprite.Sprite , тогда вы можете даже пропустить def draw()
, потому что оно уже есть
class Frog(pygame.sprite.Sprite):
def __init__(self, x, y, filename):
self.image = pygame.image.load(filename)
self.rect = self.sprite.get_rect()
self.rect.x = x
self.rect.y = y
#self.rect.w = w # no need it - rect will use image's width
#self.rect.h = h # no need it - rect will use image's height
#def draw(self, screen):
# screen.blit(self.image, self.rect)
# Sprite already has this method
Теперь вы используете self.rect.x
и self.rect.y
вместо self.x
, self.y
, потому что некоторые другие функции используют self.rect
для проверки столкновения ( pygame.sprite.collide_rect ()) или нарисуйте все спрайты в группе ( pygame.sprite.Group ).
С помощью self.rect
вы также можете назначить x, y
центру изображения
self.rect.centerx = x
self.rect.centery = y
и он вычислит self.rect.x
, self.rect.y
Док: pygame.image.load () , pygame.sprite.Sprite , pygame.sprite.collide_rect () , pygame.sprite.Group