예제 #1
0
 def check_player_collisions(self):
     """Метод проверяет, подобрал ли игрок бонус, добавляет монету в худ, дает 200 очков"""
     collided = pygame.sprite.spritecollideany(self, players_group)
     if collided:
         hud.add_score(200)
         hud.add_coins(1)
         self.kill()
예제 #2
0
    def die(self, rate):
        """rate - множитель очков, выдающихся при убийстве Гумбы. Позволяет делать комбо"""
        self.image = self.frames[2]

        self.smert = max(1, self.smert)  # Запуск счетчика смерти. max нужен,
        # чтобы счетчик не сбрасывался при возможных повторных вызовах метода
        PointsUp(*self.rect.topleft, 200 * rate)  # Создаем высвечивающиеся очки
        hud.add_score(200 * rate)  # Добавляем счет в худ
예제 #3
0
 def check_player_collisions(self):
     """Метод проверяет, подобрал ли игрок бонус, превращает игрока в Супер Марио,
     дает 1000 очков"""
     collided = pygame.sprite.spritecollideany(self, players_group)
     if collided:
         collided.set_state('big')
         PointsUp(*collided.rect.topleft, 1000)
         hud.add_score(1000)
         self.kill()
예제 #4
0
    def __init__(self, x, y, world):
        self.frames = ItemBase.ITEMS[world][
            15:19]  # Все кадры вращающейся монетки для этого мира
        self._load_image(x, y)
        self.start_y = self.rect.y - self.rect.h  # Нижняя точка полета монеты
        self.end_y = self.start_y - self.rect.h * 2  # Верхняя точка полета монеты
        self.vx = 7  # Вертикальная скорость в пикселях на кадр

        # При появлении монета добавляет игроку
        hud.add_score(200)  # 200 очков
        hud.add_coins(1)  # +1 coin
예제 #5
0
 def die(self, rate):
     """rate - множитель очков, выдающихся при убийстве Купы. Позволяет делать комбо"""
     if not self.smert:
         # Спрятаться в панцирь и остановиться
         self.load_image(2)
         self.smert = 1
         self.vx = 0
     else:
         if not self.vx:
             # Выбор направления движения катающейся в панцире Купы
             right = (self.rect.x + self.rect.w // 2) > (
                 Map.get_player().rect.x + Map.get_player().rect.w // 2)
             self.vx = 10 if right else (-10)
         else:
             # Окончательное убийство Купы
             PointsUp(*self.rect.topleft, self.value * rate)
             hud.add_score(self.value * rate)
             self.kill()
예제 #6
0
 def fast_die(self):
     """Метод нужен для убийства черепахой, огненным шаром, движущимся блоком."""
     PointsUp(*self.rect.topleft, self.value // 2)
     hud.add_score(self.value // 2)
     self.kill()