Базовая 2-D игра на Python (часть 4)

Это четвертая часть статьи, где мы будем сбрасывать врага сверху вниз.

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

Чтобы сбросить врага сверху вниз, вам нужно понять простую математику. Блок противника будет перемещаться сверху вниз, что означает, что его координаты y увеличиваются, и он будет перемещаться до высоты экрана. Нам нужно обновить только координаты Y, то есть «вражеский_по [1]».

Здесь мы проверим, находятся ли y-координаты в диапазоне игрового экрана, и если да, мы перемещаем его положение на 20 пикселей вниз.
А в случае, если блок выходит за пределы экрана, мы снова обновляем его значения до нуля. Итак, он снова начнется с нуля.
Запустив этот код, вы увидите что-то вроде этого:

(Я не могу запечатлеть быстрое движение противника сверху вниз)

Скорость вражеского блока очень высока. Мы не можем победить это. Мы должны сделать это немного медленнее, чтобы увидеть и сохранить наш блок. Для этого мы должны уменьшить количество кадров в секунду, а для этого мы должны использовать один модуль pygame, который отвечает за мониторинг времени, ‘pygame.time’.

Затем мы создадим объект для отслеживания времени. Для этого мы должны использовать метод: ‘ pygame.time.Clock ()

›› clock = pygame.time.Clock ()

Здесь часы — это объект для отслеживания времени, и теперь нам нужно обновить часы с помощью частоты кадров. Для этого нам нужно использовать метод, отвечающий за обновление времени: ‘ pygame.time.Clock.tick (framerate)

Этот метод полезен, если вы хотите замедлить работу некоторых функций в игре. Здесь мы хотим замедлить скорость вражеского блока, для этого мы назначим некоторую частоту кадров, и в соответствии с этим блок появится. Этот метод следует вызывать один раз для каждого кадра.

См. также:  Создание Flask API для моделей машинного обучения

›› clock.tick (30)

Программа никогда не будет работать со скоростью более 30 кадров в секунду.

Напишите приведенный выше код и выполните его, вы заметите разницу в скорости. Если у вас есть сомнения или проблемы, дайте мне знать.

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

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

Ответ слишком прост. Нам просто нужно обновить x-координаты блока, как только блок находится за пределами экрана. Вот и все.

Здесь, если вы увидите, всякий раз, когда противник выходит за пределы экрана (направление вниз), мы обновляем значение вражеский_по на < сильный> 1. Но мы не упоминаем случайные координаты x. Таким образом, нам также необходимо обновить координаты x. (Подумайте, что мы должны написать, я вам уже подсказал)

Всего одна строчка:

Каждый раз, когда противник уходит с экрана, координаты x будут генерировать случайную позицию для блока. (я же говорил, это было действительно просто;))

Теперь мы подошли к концу четвертой части, до этого момента мы сбрасывали врага сверху и могли замедлить скорость врага.

Нажмите здесь, чтобы перейти к пятой части. Если вы все еще не читали третью часть, нажмите здесь. И если вы нашли эту статью интересной, пожалуйста, хлопните в ладоши и поделитесь ею с друзьями.

Понравилась статья? Поделиться с друзьями:
IT Шеф
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: