Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 18, 2019 11:53:24

Pavel32272
Зарегистрирован: 2019-09-22
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

pygame метод rect

Не могу до конца понять метод rect в pygame, объясните пожалуйста и очень простым языком, как работает. На примере моего кода, я как бы понимаю как заставить его двигаться в лево и в право, и как указать позицию, но не могу понять что именно я делаю, я по сути просто пишу по памяти, но сути не догоняю, что это значит.

 import pygame
class Ship():
    def __init__(self, ai_settings, screen):
        #Инициализирует корабль и задает его начальную позицию."""
        self.screen = screen
        #Загрузка изображения корабля и получение прямоугольника
        self.image = pygame.image.load('images/ship.bmp')#Загрузка изображения
        self.rect = self.image.get_rect()
        self.screen_rect = screen.get_rect()
        self.rect.centerx = self.screen_rect.centerx
        self.rect.bottom = self.screen_rect.bottom
        self.moving_right = False
        self.moving_left = False
        self.ai_settings = ai_settings
        self.center = float(self.rect.centerx)
    def update(self):
        #Обновляет позицию коробля с учетом флага
        if self.moving_right and self.rect.right < self.screen_rect.right:
            self.center += self.ai_settings.ship_speed_factor
        if self.moving_left and self.rect.left < self.screen_rect.left:
            self.center -= self.ai_settings.ship_speed_factor
        self.rect.centerx = self.center
    def blitme(self):
        #Рисует корабль в текущей позиции.
        self.screen.blit(self.image, self.rect)

Офлайн

#2 Окт. 21, 2019 15:23:39

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

pygame метод rect

Pavel32272
Не могу до конца понять метод rect в pygame, объясните пожалуйста и очень простым языком, как работает.
Для начала покажите что это такой за метод, и где он у вас в коде?
потому как я его не вижу, все что я вижу это
self.rect = self.image.get_rect()
Но это ни разу не метод, это артибут вашего класса в котором храниться объект типа pygame.Rect
get_rect(**kwargs) -> Rect (https://www.pygame.org/docs/ref/surface.html#pygame.Surface.get_rect)

А уж атрибуты и методы этого объекта и что они делают прекрасно описаны в документации: https://www.pygame.org/docs/ref/rect.html



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Окт. 21, 2019 15:25:14)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version