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
内。我在这里复制粘贴它的骨架来展示一个例子:移动角色后(按键后),在主循环的每次迭代中调用此方法。参数
sface
是您的window
。在各种
if
语句中到底要做什么取决于您。在我的例子中,它重绘屏幕,替换屏幕另一侧的字符。如果角色从左侧退出,则会在右侧重新绘制,以给人一种感觉,即摄影机正在显示下一个房间,而角色处于同一位置。您也可能不希望传递
window
,而是传递一个较小的曲面,以便滚动场景而不是全部重画。你知道吗相关问题 更多 >
编程相关推荐