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
bet9/10
Sana17.06.2023
Hajmi0.59 Mb.
#1527190
1   2   3   4   5   6   7   8   9   10
Bog'liq
Занятие 31 Сложный Физ. Движок

self.moving_sprites_list = None


Далее метод setup
self.moving_sprites_list = 
tile_map.sprite_lists['Moving Platforms']


Также в методе setup нам 
нужно добавить эти спрайты в 
физический движок. В этом 
случае мы добавим спрайты как 
KINEMATIC. Статические 
спрайты не двигаются. 
Динамические спрайты 
движутся, и к ним могут 
применяться силы других 
объектов. Кинематические 
спрайты двигаются, но на них 
не влияют другие объекты.
SELF.PHYSICS_ENGINE.ADD_SPRITE_LIST(SELF.MOVING_SPRITES_LIST,
BODY_TYPE=ARCADE.PYMUNKPHYSIC SENGINE.KINEMATIC)


Не забудем отрисовать в on_draw
self.moving_sprites_list.draw()


Далее в методе on_update пропишем условия для движения 
платформ, а также непосредственно активируем их движение
for moving_sprite in self.moving_sprites_list:
if moving_sprite.boundary_right and \
moving_sprite.change_x > 0 and \
moving_sprite.right > moving_sprite.boundary_right:
moving_sprite.change_x *= -1
elif moving_sprite.boundary_left and \
moving_sprite.change_x < 0 and \
moving_sprite.left > moving_sprite.boundary_left:
moving_sprite.change_x *= -1
if moving_sprite.boundary_top and \
moving_sprite.change_y > 0 and \
moving_sprite.top > moving_sprite.boundary_top:
moving_sprite.change_y *= -1
elif moving_sprite.boundary_bottom and \
moving_sprite.change_y < 0 and \
moving_sprite.bottom < moving_sprite.boundary_bottom:

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