我不确定该如何解释,但我正在尝试制作一款游戏,使玩家可以在窗户上行走并遇到敌人等。
我有一个窗口的代码。像这样:
window = pygame.display.set_mode((500, 480))
我的角色可以在该窗口上左右移动并跳转,但是当他到达角落时,他停了下来。因此,我的问题是如何使他走得更远,例如,在他走路时改变背景,结识其他敌人等? 当角色接触角落时,我是否必须上课并打电话给她? 我希望你明白。 谢谢。
答案 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
,而是通过较小的表面来滚动场景,而不是全部重绘。