如何计算一个形状是否在pyglet中的另一个形状之下

How to calculate if a shape is under another in pyglet

我正在使用 pyglet 制作一个无尽的跑步者。
我正在尝试确定玩家下方地板的高度。每一层都是class:

class Floor():
    def __init__(self, width, height, offset, batch=None):
        self.width = width
        self.height = height

        self.floor = shapes.Rectangle(offset, 0, self.width, self.height, color=(9, 197, 0), batch=batch)
    def move(self, amount):
        self.floor.x -= amount

所以我在class中添加了一个方法来计算地板是否在玩家下方(玩家也是一个形状):

    def under_player(self, player):
        if player.x <= self.floor.x and self.floor.x + self.width >= player.x:
            return True
        return False

现在为了计算玩家所在的地板高度,我做了这个函数(地板是 Floor classes 的列表):

def calc_under_floor():
    global floors, player
    for floor in floors:
        if floor.under_player(player):
            return floor.height
    return -100

问题是 under_player 中检查玩家是否在这层楼下的条件是错误的。我找不到可行的解决方案。有什么办法可以解决这个问题吗?

希望我找到了解决方案。至少它有效:)

    def under_player(self, player):
        if player.x + 50 >= self.floor.x and player.x <= self.floor.x + self.floor.width:
            return True
        return False