Top.Mail.Ru
Ответы

Размещение картинки в правом углу pygame

Добрый день, пытаюсь освоить pygame и по заданию из учебника пишу игру, в которой "корабль" размещается у левого верхнего края экрана, а игрок может перемещать корабль вверх и вниз (что мне удалось реализовать в своём коде). А возле правого края экрана нужно разместить флот пришельцев и заставить их двигаться к кораблю. У меня никак не получается разместить их возле правого края экрана (в моём коде приведенном ниже они появляются слева там же где и корабль) не могу сообразить как это сделать, подскажите пожалуйста ) сам код пришельцев:

1234567891011121314151617181920212223242526
 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) 
 


 
12345
 
 
 
 
 
Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Оракул

Для того, чтобы разместить изображение в правом верхнем углу экрана, вам необходимо изменить координаты x и y прямоугольника rect вашего объекта Polko. Вот как это можно сделать:

123456789101112
 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 прямоугольника экрана. Это разместит вашего полковника в правом верхнем углу экрана.