Размещение картинки в правом углу pygame
Добрый день, пытаюсь освоить pygame и по заданию из учебника пишу игру, в которой "корабль" размещается у левого верхнего края экрана, а игрок может перемещать корабль вверх и вниз (что мне удалось реализовать в своём коде). А возле правого края экрана нужно разместить флот пришельцев и заставить их двигаться к кораблю. У меня никак не получается разместить их возле правого края экрана (в моём коде приведенном ниже они появляются слева там же где и корабль) не могу сообразить как это сделать, подскажите пожалуйста ) сам код пришельцев:
import pygame
from pygame.sprite import Sprite
class Polko(Sprite):
"""Класс представляющий собой одного полковника."""
def __init__(self, cp_game):
"""Инициализирует полковника и задаёт его стартовую позицию."""
super().__init__()
self.screen = cp_game.screen
# Загружаем изображение полковника и назначаем атрибут rect.
self.image = pygame.image.load('images/polko.bmp')
self.rect = self.image.get_rect()
# Каждый новый полковник появляется в правом верхнем углу экрана.
self.rect.x = self.rect.height
self.rect.y = self.rect.width
self.x = float(self.rect.y)
Для того, чтобы разместить изображение в правом верхнем углу экрана, вам необходимо изменить координаты x и y прямоугольника rect вашего объекта Polko. Вот как это можно сделать:
class Polko(Sprite):
def __init__(self, cp_game):
super().__init__()
self.screen = cp_game.screen
self.screen_rect = cp_game.screen.get_rect()
self.image = pygame.image.load('images/polko.bmp')
self.rect = self.image.get_rect()
# Размещение полковника в правом верхнем углу экрана
self.rect.topright = self.screen_rect.topright
В этом коде мы получаем прямоугольник экрана с помощью метода get_rect() и затем устанавливаем атрибут topright прямоугольника rect объекта Polko равным атрибуту topright прямоугольника экрана. Это разместит вашего полковника в правом верхнем углу экрана.