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


Далее мы создаем класс PlayerSprite. Этот класс будет обновлять анимацию игрока


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

Далее мы создаем класс PlayerSprite. Этот класс будет обновлять анимацию игрока.
Метод __init__загружает все текстуры. Есть восемь текстур для ходьбы и текстуры для состояния покоя, прыжков и падений.
Так как персонаж может смотреть влево или вправо, мы используем arcade.load_texture_pair , чтобы загрузить как обычное, так и зеркальное 
изображение.
Для анимации ходьбы мы используем «одометр». Нам нужно переместиться на определенное количество пикселей, прежде чем изменить 
анимацию. Если это значение слишком маленькое, наш персонаж двигает ногами, если слишком большое, то создается впечатление, что вы 
катаетесь на коньках. Мы отслеживаем индекс нашей текущей текстуры от 0 до 7, так как их восемь.
У любого спрайта, перемещаемого движком Pymunk, будет вызываться его метод pymunk_moved.


https://pastebin.com/X8GiYjH9
class PlayerSprite(arcade.Sprite):
def __init__(self):
super().__init__()
self.scale = SPRITE_SCALING _PLAY ER
main_path = ":resources:images/animated_characters/female _person/femalePerson"
self.idle_texture_pair = arcade.load_texture_pair(f"{ main _path}_idle.pn g")
self.jump_texture_pair = arcade.load_texture_pair(f"{ main_p ath}_ju mp .png")
self.fall_texture_pair = arcade.load_texture_pair(f"{ main _path}_f all.pn g")
self.walk_textures = []
for i in range(8):
texture = arcade.load_texture_pair(f"{ main_p ath} _w alk{i}.png")
self.walk_textures.append(texture)
self.texture = self.idle_texture_pair[0]
self.hit_box = self.texture.hit_box_points
self.character_face_direction = RIGHT_FACING
self.cur_texture = 0
self.x_odometer = 0
def pymunk_moved(self, physics_engine, dx, dy, d_angle):

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