Pygame:如何连续移动角色和视野?

时间:2019-03-09 21:39:10

标签: python pygame

我不确定该如何解释,但我正在尝试制作一款游戏,使玩家可以在窗户上行走并遇到敌人等。

我有一个窗口的代码。像这样:

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

我的角色可以在该窗口上左右移动并跳转,但是当他到达角落时,他停了下来。因此,我的问题是如何使他走得更远,例如,在他走路时改变背景,结识其他敌人等? 当角色接触角落时,我是否必须上课并打电话给她? 我希望你明白。 谢谢。

1 个答案:

答案 0 :(得分:0)

您需要了解何时字符触摸/足够靠近屏幕边框,然后采取适当的措施。
在我正在玩的游戏中,代表主要角色的类具有一种检查角色何时在表面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,而是通过较小的表面来滚动场景,而不是全部重绘。