Вы должны понимать, когда ваш персонаж касается / достаточно близко к границе экрана, а затем предпринимать соответствующие действия.
В игре, которую я пишу для забавы, класс, представляющий главного героя, имеет метод дляпроверить, когда персонаж находится внутри поверхности 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
но меньшая поверхность, чтобы прокрутить сценарий, а не перерисовывать все.