在pygame中停止我的受控对象离开屏幕

时间:2016-04-22 23:48:23

标签: pygame border

我已经开始使用python 3.2.2在pygame中制作游戏 我有一个标题屏幕,其中有一个新的游戏按钮,当按下空格背景时会出现一个UFO,您可以使用箭头键控制 但是我的UFO可以在各个方向离开屏幕,我想让它停在屏幕边缘。我希望它能在将来出现在游戏中的每个未来屏幕上执行此操作。

我不知道这样做的原则......它应该放在代码中。我读了一些关于矩形的东西。我需要定义一个矩形然后获取ufo来检测这个矩形并在检测到矩形时停止

任何帮助表示赞赏

我非常擅长处理工作,所以我们会欣赏正确的方向。

感谢

1 个答案:

答案 0 :(得分:0)

您需要的是碰撞检测。以下是python中的一些示例AABB碰撞检测代码:

def collide(A_top, A_bot, A_left, A_right, B_top, B_bot, B_left, B_right):
    if B_left < A_right and B_top < A_bot and B_right > A_left and B_bot > A_top:
        return True #IS colliding
    return False #IS NOT colliding

现在只是碰到屏幕边框或屏幕上恰好出现的任何其他内容。

其他解决方案:

请按以下方式检查:

if ufo.x < 0 or ufo.y < 0 or ufo.x + ufo.width > screen.width or ufo.y + ufo.height > screen.height:
    #Do collide code