电子游戏与面具的碰撞
本文介绍了电子游戏与面具的碰撞的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我做了一个推杆-推杆游戏,现在我想添加一个斜墙类型。正因为如此,我需要使用遮罩来进行碰撞(到目前为止,我只使用了RECT)。我花了几个小时学习面具,并试图弄清楚为什么我的代码不能工作。没有错误,只是没有检测到冲突。
我已经将我的代码简化为小得多的代码,以此作为我有效测试它的一种方式。从我所看到的一切来看,这似乎应该奏效,但事实并非如此。这就是:
推荐答案
方法overlap()
的偏移量参数是othermask
相对于pygame.mask.Mask
对象的相对位置。
因此,从ball
的坐标中减去slant
的坐标即可计算出偏移量:
offset_x, offset_y = (slant.rect.x - ball.rect.x), (slant.rect.y - ball.rect.y)
当您创建蒙版图片时,我建议您通过调用.convert_alpha()
:
最小示例: repl.it/@Rabbid76/PyGame-SurfaceMaskIntersect
另请参阅:Mask
这篇关于电子游戏与面具的碰撞的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!