如何检查graphics.py中两个框之间的碰撞?

问题描述

如何使用 John Zelle 的 graphics.py 模块检查两个盒子之间的碰撞?

编辑:

我找到了一种方法来查找具有 x,y,width,height 的任意两个类之间的冲突。它有点凌乱,但它可以完成工作:

def collided(self,collider):
    if self.x < collider.x + collider.width and\
        self.x + self.width > collider.x and\
        self.y < collider.y + collider.height and\
        self.y + self.height > collider.y:
        return True
    return False

如果有人有更好的方法,将不胜感激!

解决方法

这是一个小演示程序,它说明了一个相当简洁的方法——它包含一个名为 intersect() 的函数,它检查 graphics 模块的 Rectangle 类的两个实例是否相交。

这样做有点棘手,因为用于定义 Point 的两个 Rectangle 不需要是它的右下角和左上角,{{ 1}} 函数需要。为了解决这个问题,我们使用了一个名为 intersect() 的辅助函数来使其传递的每个参数都是这种情况。

canonical_rect()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...