Python 如何制作碰撞遮罩?
我试着制作一个碰撞遮罩来检测两个精灵是否发生碰撞,但它根本不起作用,我遇到了一个瞬间的碰撞,你能帮我吗 我的代码是:Python 如何制作碰撞遮罩?,python,pygame,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.
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')
见以下文件:
使用遮罩检测两个精灵之间的碰撞
collide_mask(SpriteLeft, SpriteRight) -> point
通过测试两个精灵的位掩码是否重叠来测试它们之间的碰撞。如果精灵具有用作遮罩的“遮罩”属性,则会从精灵图像创建遮罩。旨在作为冲突回调函数传递给*collide函数。精灵必须具有“rect”和可选的“mask”属性
.collide_mask()
的参数必须是2个对象,而不是2个遮罩对象:
在以下情况下,假定Player
和oc1
是对象:
Player.rect=Player.image.get_rect()
oc1.rect=oc1.image.get_rect()
Cm=pg.sprite.collide_面具(玩家,oc1)
如果Cm!=无:
打印('life-1')
最简单的例子: 另见