Как перенести изображение на поверхность в pygame такого же размера, как прямоугольник

Я делаю игру с pygame, и у каждого Sprite есть прямоугольник и изображение. Как мне перенести это изображение на поверхность, чтобы оно было того же размера, что и прямоугольник?

pygame.init()
screen = pygame.display.set_mode((720, 480))
pygame.display.set_caption('My game')

background = pygame.Surface(screen.get_size())
background = background.convert()
background.fill((250, 250, 250))

charRect = pygame.Rect((0,0),(10, 10))
print os.path.abspath("airbender.png")
charImage = pygame.image.load(os.path.abspath("ImageName.png"))
charImage = charImage.convert()

background.blit(charImage, charRect) #This just makes it in the same location
                                     #and prints it the same size as the image

screen.blit(background,(0,0))
pygame.display.flip()

Также зачем нужен последний pygame.display.flip()?


person argetlam5    schedule 15.04.2015    source источник


Ответы (1)


Вы должны сделать что-то вроде:

pygame.init()
screen = pygame.display.set_mode((720, 480))
pygame.display.set_caption('My game')

background = pygame.Surface(screen.get_size())
background = background.convert()
background.fill((250, 250, 250))

charRect = pygame.Rect((0,0),(10, 10))
print os.path.abspath("airbender.png")
charImage = pygame.image.load(os.path.abspath("ImageName.png"))
charImage = pygame.transform.scale(charImage, charRect.size)
charImage = charImage.convert()

background.blit(charImage, charRect) #This just makes it in the same location
                                     #and prints it the same size as the image

screen.blit(background,(0,0))
pygame.display.flip()
person Pedro H. Forli    schedule 16.04.2015
comment
Потрясающе, вот и все. Спасибо - person argetlam5; 16.04.2015