Pygame: Как постоянно перемещать персонажа и вид? - PullRequest
0 голосов
/ 10 марта 2019

Я не знаю, как объяснить, но я пытаюсь сделать игру, в которой игрок может ходить по окну и встречать врагов и т. Д.

У меня есть код с одним окном. Как это:

window = pygame.display.set_mode((500, 480))

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

1 Ответ

0 голосов
/ 10 марта 2019

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

def insidesurf(self, sface):
    if sface.get_rect().contains(self.rect):
        return None
    else:
        if self.rect.top < sface.get_rect().top:
            #the character is going out from the screen from the top-side
        elif self.rect.left < sface.get_rect().left:
            #the character is going out from the screen from the left-side
        elif self.rect.bottom > sface.get_rect().bottom:
            #the character is going out from the screen from the bottom-side
        elif self.rect.right > sface.get_rect().right:
            #the character is going out from the screen from the right-side

Этот метод вызывается на каждой итерации основного цикла после перемещения символа (после нажатия клавиши).Аргумент sface - это ваш window.
Что делать в различных заявлениях if зависит от вас.В моем случае он перерисовывает экран, заменяя символ на противоположной стороне экрана.Если персонаж выходит с левой стороны, он перерисовывается с правой стороны, чтобы создать впечатление, что камера показывает следующую комнату и персонаж находится в той же позиции.
Вы также можете не пропустить свой windowно меньшая поверхность, чтобы прокрутить сценарий, а не перерисовывать все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...