<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру 3.0

PHP и MySQL с Нуля до Гуру 3.0

Данный курс научит Вас программировать на самом популярном Web-языке в мире - PHP. Курс состоит из 9 разделов, в которых с нуля рассказывается и показывается процесс написания различных скриптов на PHP.

В курсе Вы узнаете всю необходимую теоретическую часть, а также увидите массу практических примеров, в том числе, и из моей практики.

В Бонусе «Создание сайта для библиотеки» Вы увидите применение знаний из основного курса при создании полноценного проекта.

Просмотрев данный курс, Вы сможете создавать абсолютно любые PHP-сайты любой сложности.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Зачем Вы изучаете программирование/создание сайтов?

Космические приключения с Python и Pygame. Перемещение астероидов

Космические приключения с Python и  Pygame. Перемещение астероидов

Здравствуйте! В цикле статей по созданию космической аркады, с Python и Pygame, мы достигли того что на игровом поле отображается космический корабль и шесть астероидов, разбросанных в случайном порядке. При этом астероиды недвижимы. И в сегодняшней статье мы еще немного оживим игру, придав им возможность движения.

Так же как и в случае с положением астероидов, случайными должны быть не только направление движения, но и значения скорости.

Начнем с создания метода get_random_velosity() в файле space_rock/utils.py:


def get_random_velocity(min_speed, max_speed): 
  speed = random.randint(min_speed, max_speed)
  angle = random.randrange(0, 360)
  return Vector2(speed, 0).rotate(angle)

Метод будет генерировать случайное значение между значениями min_speed и max_speed и случайным углом между 0 и 360 градусами. Затем он создаст вектор с этим значением, повернутый на этот угол.

Поскольку скорость астероида должна быть случайной независимо от того, где он находится, давайте воспользуемся этим методом непосредственно в классе Asteroid. Начните с обновления импорта в файле space_rocks/models.py:


from pygame.math import Vector2
from pygame.transform import rotozoom
from utils import get_random_velocity, load_sprite, wrap_position


Обратие внимание, что вы устанавливаете свое случайное положение в одном месте, а свою случайную скорость - в другом. Это потому, что позиция должна быть случайной только для шести астероидов, с которых вы начинаете, поэтому она устанавливается в файле space_rocks/game.py, где инициализируется игра. Однако скорость является случайной для каждого астероида, поэтому вы задаете ее в конструкторе класса Asteroid.

Затем используйте новый метод в конструкторе класса Asteroid:


def __init__(self, position):
    super().__init__(
        position, load_sprite("asteroid"), get_random_velocity(1, 3)
    )


Обратите внимание, что метод использует минимальное значение 1. Это потому, что астероид всегда должен двигаться, по крайней мере немного.

Запустите игру еще раз, чтобы увидеть движущиеся астероиды:


Изображение

Вы также можете перемещать космический корабль по экрану. К сожалению, при столкновении с астероидом ничего не происходит. Пришло время добавить несколько столкновений.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.