Python碰撞检测,而不是在Pygame中



我正在尝试在Zelle中构建Python图形模块中的2D地图。我使用多边形类对象创建了地图边界。如果我想检查cirlce对象是否正在触摸地图边界以检测碰撞,我该怎么办?

这是我的意思的一个示例:

poly  = Polygon(Point(x1,y1), Point(x2,y2), Point(x3,y3)) .draw(win)  # a triangle shape
circ = Circle (Point(x4,y4), radius) .draw(win)      # drawn in the middle of the triangle map

我可以使用circ.getCenter()获得circ邮政编码,但我不知道该检查两个对象是否交叉是最好的方法。也许这样的东西

def collision(circ,poly,x,y):
    if position of circle passes the position of the line of the poly at x,y:
        detect collision
   else:
       pass

我在python中找到了一个碰撞检测程序,这里是。

if circle_x < rect_x + circle_width and circle_x + rect_width > rect_x and circle_y < rect_y + circle_height and circle_height + circle_y > rect_height :

但是,这会感觉到如果圆的边缘触摸矩形,因此,为了使其感知到圆圈是否触摸映射,则需要用0替换所有rect_x,并用0,用0,用0,用0,然后用屏幕宽度替换RECT_WIDTH,并用屏幕高度替换Rect_height,例如:

if circle_x < 0 + circle_width and circle_x + screen_width > 0 and circle_y < 0 + circle_height and circle_height + circle_y > screen_height :

现在,它会感觉到圆圈是否一般触摸地图,以感觉到圆圈是否触摸屏幕的边缘if语句并做出其他说明,以便将您想要的内容放在其中:

if circle_x < 0 + circle_width and circle_x + screen_width > 0 and circle_y < 0 + circle_height and circle_height + circle_y > screen_height :
    #put nothing here
else:
    #put the code you need here

相关内容

  • 没有找到相关文章

最新更新