python中无类的碰撞矩形

python中无类的碰撞矩形,python,pygame,Python,Pygame,所以我做了一个很酷的避碰游戏,除了撞车,我什么都做了。因为我是pygame模块的noob,所以我没有上任何课程,我不知道如何检查玩家的hitbox是否与敌人的hitbox发生碰撞。另外,我知道一些人以前问过这个问题,但他们给出的答案要么我不清楚,要么是精灵,而不是矩形。这是我的密码: 任何线索都会有帮助,您可以让我在下面的评论中澄清。Pygame中的每个Rect对象都有一个方法CollizeRect,该方法可以测试该Rect对象是否与任何其他Rect对象碰撞重叠 要检查点x1、y1处宽度为w1、

所以我做了一个很酷的避碰游戏,除了撞车,我什么都做了。因为我是pygame模块的noob,所以我没有上任何课程,我不知道如何检查玩家的hitbox是否与敌人的hitbox发生碰撞。另外,我知道一些人以前问过这个问题,但他们给出的答案要么我不清楚,要么是精灵,而不是矩形。这是我的密码:

任何线索都会有帮助,您可以让我在下面的评论中澄清。

Pygame中的每个Rect对象都有一个方法CollizeRect,该方法可以测试该Rect对象是否与任何其他Rect对象碰撞重叠

要检查点x1、y1处宽度为w1、高度为h1的矩形是否与点x2、y2处宽度为w2、高度为h2的矩形发生碰撞,可以这样实现:

pygame.Rect(x1,y1,w1,h1).colliderect(pygame.Rect(x2,y2,w2,h2))
例如,在您的特定示例中,您可以实现您正试图使用的功能:

def checkCollision(playerHitbox, enemyHitbox):
    return pygame.Rect(*playerHitbox).colliderect(pygame.Rect(*enemyHitbox))
注意:我在这里使用的*将元组解压为参数。即:第一个元素作为第一个参数发送,第二个元素作为第二个参数发送,等等

您在代码中走的是正确的,请记住,此方法对Rect对象而不是信息本身的元组进行操作。因此,您需要实例化必要的Rect对象,如上图所示^

Pygame中的每个Rect对象都有一个collide Rect方法,该方法可以测试该Rect对象是否与任何其他Rect对象碰撞重叠

要检查点x1、y1处宽度为w1、高度为h1的矩形是否与点x2、y2处宽度为w2、高度为h2的矩形发生碰撞,可以这样实现:

pygame.Rect(x1,y1,w1,h1).colliderect(pygame.Rect(x2,y2,w2,h2))
例如,在您的特定示例中,您可以实现您正试图使用的功能:

def checkCollision(playerHitbox, enemyHitbox):
    return pygame.Rect(*playerHitbox).colliderect(pygame.Rect(*enemyHitbox))
注意:我在这里使用的*将元组解压为参数。即:第一个元素作为第一个参数发送,第二个元素作为第二个参数发送,等等


您在代码中走的是正确的,请记住,此方法对Rect对象而不是信息本身的元组进行操作。因此,您需要实例化必要的Rect对象,如上图所示^

Hi here!请在问题中直接包含代码的相关部分,而不是作为链接。这会使您的问题更快回答,并保证它将永远可以理解,因为与代码链接不同,您的问题不会过期:您可能希望查看@MyStackRunnethOver我尝试过,但格式怪异,因此我在那里使用了hastebin而不是Hasteadhi!请在问题中直接包含代码的相关部分,而不是作为链接。这会使您的问题更快回答,并保证它将永远可以理解,因为与代码链接不同,您的问题不会过期:您可能希望查看@MyStackRunnethOver我尝试过,但格式奇怪,因此我使用了hastebin,非常感谢!我对你的代码做了一些编辑,它成功了!!非常感谢你!我对你的代码做了一些编辑,它成功了!!