如何制作防撞面罩?

时间:2019-05-08 14:57:45

标签: python pygame

我试图制作一个防碰撞面具,以检测两个精灵是否相互碰撞,但是这根本不起作用,我立即崩溃了,你能帮我吗?

我的代码是:

        Player.rect = Player.image.get_rect()
        oc1.rect = oc1.image.get_rect()
        mask_1 = pg.mask.from_surface(Player)
        mask_2 = pg.mask.from_surface(oc1)
        Cm = pg.sprite.collide_mask(mask_1, mask_2)
        if Cm != None :
            print('life - 1')

1 个答案:

答案 0 :(得分:1)

请参阅pygame.sprite.collide_mask()的文档:

  

使用蒙版检测两个精灵之间的碰撞。

collide_mask(SpriteLeft, SpriteRight) -> point
     

通过测试两个精灵之间的位掩码是否重叠来测试它们之间的冲突。如果子画面具有“遮罩”属性(用作遮罩),则从子画面图像创建遮罩。旨在作为冲突的回调函数传递给* collide函数。子画面必须具有“矩形”和可选的“蒙版”属性。

.collide_mask()的参数必须是2个pygame.sprite.Sprite对象,而不是2个遮罩pygame.mask.Mask对象:

以下假设Playeroc1pygame.sprite.Sprite个对象:

Player.rect = Player.image.get_rect()
oc1.rect = oc1.image.get_rect()

Cm = pg.sprite.collide_mask(Player, oc1)

if Cm != None :
    print('life - 1')