2015-10-03 2 views
-2

Я делаю игровую платформу, которая в основном основанные на воссоздаете первые Super Mario Bros.Pygame не обнаруживает, когда объект больше не сталкиваясь со стеной

Пока что мне нужно знать, когда игрок (объект) перестает сталкиваться со стеной (объектом). Я знаю, когда он сталкивается, например, когда player.rect.bottom == wall.rect.top, затем State state = 1. Как я могу сделать State state = 0 (что бы он упал), если игрок больше не сталкивается ,

Я уже пытался с помощью:

if player.rect.bottomleft == wall.rect.topright or player.rect.bottomright == wall.rect.topleft: 
     Floor = 1 

Это делает игрока осенью, если он находится в углу. Но если у игрока есть ускорение, он не пройдет через этот момент, Пол будет по-прежнему быть Floor = 1, и игрок не упадет, он будет плавать или летать. Спасибо

Есть ли вообще знать, когда он перестанет сталкиваться, что позволит мне изменить стоимость Floor?

+0

После поиска какое-то время я попытаюсь объединить 2 кода: [link] (https://sivasantosh.wordpress.com/2012/07/23/using-masks-pygame/) [ссылка] (http : //pygame.org/project-Rect+Collision+Response-1061-.html) Как только я добавляю 'класса стены (объект): четкости __init __ (я, Pos): walls.append (самостоятельно) self.rect = pygame.Rect (поз [0], поз [1], 16, 16) ' Это послать мне этот отслеживающий ' wall.set_colorkey ((255255255)) AttributeError: тип объекта ' wall 'не имеет атрибута' set_colorkey'' –

ответ

0

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

Смежные вопросы