I mport arcade screen title = "Использование PyMunk" screen width = 800 screen height = 600 class GameWindow(arcade. Window): def init (self, width, height, title): super init (width, height, title) def setup(self): pass def on key press


Download 0.59 Mb.
Pdf ko'rish
bet10/10
Sana17.06.2023
Hajmi0.59 Mb.
#1527190
1   2   3   4   5   6   7   8   9   10
Bog'liq
Занятие 31 Сложный Физ. Движок

moving_sprite.change_y *= -1
velocity = (moving_sprite.change_x * 1 / delta_time, moving_sprite.change_y * 1 / delta_time)
self.physics_engine.set_velocity(moving_sprite, velocity)


https://pastebin.com/uzhjg0f6
•Готово. Также еще физический движок, 
позволяет нам реализовать возможность 
подъема/спуска по лестнице. Эту 
возможность, а также движущиеся 
платформы более подробно, мы рассмотрим 
на следующем занятии

Document Outline

  • Слайд 1, Физика в arcade На предыдущих занятиях мы с вами познакомились с простой физикой в модуле arcade, на примере гравитации. На сегодняшнем занятии, мы познакомимся с продвинутым движком pymunk.
  • Слайд 2
  • Слайд 3, В данном случае у нас есть тайлы спрайтов размером 128x128 пикселей. Они уменьшены до 30% ширины и 30% высоты (масштаб 0,3). Размер экрана установлен на сетку 25x15. Далее создадим в методе init необходимые переменные переменные для игрока, патро
  • Слайд 4, Сразу же создадим в методе setup списки спрайтов для персонажа и патронов
  • Слайд 5, Теперь давайте займемся картой. Так как в данном примере основная цель это познакомиться с физикой, то мы воспользуемся уже готовой картой, а на следующем уроке рассмотрим, как создать свою с помощью специальной программы. Подгрузим карту в метод
  • Слайд 6, При создании данной карты использовались возможности редактора карт, и как мы видим из вывода в консоль у нас на карте есть движущиеся платформы, статические платформы, лестницы и различные объекты для взаимодействия. Давайте отрисуем статические
  • Слайд 7, on_draw
  • Слайд 8, Подгрузим текстуру для нашего персонажа из стандартного набора, создадим экземпляр класса Sprite, установим стартовую позицию и конечно же добавим наш объект в список спрайтов
  • Слайд 9, Отрисовываем список спрайтов нашего персонажа, а также сразу можно отрисовать список спрайтов для патронов
  • Слайд 10, Следующим шагом будет добавление физического движка. Во-первых, добавим некоторые константы для нашей физики. Здесь мы устанавливаем: Постоянная для силы тяжести. Значения для «демпфирования». Демпфирование 1.0 приведет к тому, что предмет потер
  • Слайд 11
  • Слайд 12, Отлично! Теперь добавим в обработку нашим движком нашего персонажа
  • Слайд 13, В данном методе мы указываем нашего персонажа, трение, массу, имя нашего объекта, скорость. Теперь добавим в наш движок и все статические объекты
  • Слайд 14, Передаем имя нашего списка объектов, трение, имя и тип тела - статический Готово. Теперь можем добавить движение для персонажа. Первое, что мы сделаем - укажем силу с которой мы будем двигать игрока
  • Слайд 15, Нам нужно отслеживать, удерживаются ли нажатыми клавиши влево или вправо. Для этого мы будем изменять значения переменных left_pressed и right_pressed. 
  • Слайд 16, Наконец, нам нужно применить правильную силу в методе on_update. Сила указана в кортеже, где сначала идет горизонтальная, а потом вертикальная сила. Мы также установим трение, когда мы движемся 0, и когда мы не движемся 1. Это нужно для получени
  • Слайд 17, Добавим возможность прыжка создадим переменную 
  • Слайд 18, И добавим обработку нажатия клавиши вверх
  • Слайд 19, Чтобы создать анимацию игрока, мы создадим отдельный класс. Мы загружаем каждый кадр анимации, который нам нужен, включая его зеркальное отображение. Также требуется поворачивать игрока лицом влево или вправо. Если игрок находится в воздухе, мы 
  • Слайд 20, LayerSprite
  • Слайд 21
  • Слайд 22, После этого не забываем изменить строку с созданием игрока в методе setup
  • Слайд 23
  • Слайд 24
  • Слайд 25, Для начала добавим имя для объектов
  • Слайд 26, И добавим необходимые обработчики
  • Слайд 27, Готово! Все работает, уничтожается. Отлично. Перейдем дальше. Давайте теперь добавим движущиеся платформы. На стандартной карте они у нас уже существуют, нам остается только их указать в коде. Создавать собственные карты на начнём уже со следующ
  • Слайд 28, Далее метод setup
  • Слайд 29, Также в методе setup нам нужно добавить эти спрайты в физический движок. В этом случае мы добавим спрайты как KINEMATIC. Статические спрайты не двигаются. Динамические спрайты движутся, и к ним могут применяться силы других объектов. Кинематичес
  • Слайд 30, Не забудем отрисовать в on_draw
  • Слайд 31, Далее в методе on_update пропишем условия для движения платформ, а также непосредственно активируем их движение
  • Слайд 32, https://pastebin.com/uzhjg0f6

Download 0.59 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling