给精灵加上碰撞检测,皮格姆

2024-09-29 23:24:42 发布

您现在位置:Python中文网/ 问答频道 /正文

basly im尝试使用以下方法将碰撞检测添加到下面的精灵:

self.rect = bounds_rect


                collide = pygame.sprite.spritecollide(self, wall_list, False)

                if collide:
            # yes

                     print("collide")

然而,当碰撞被触发时,它会不断地打印出“碰撞”,而我却希望它们根本无法穿过物体,有什么帮助吗?在

^{pr2}$

Tags: 方法rectselffalsepygamelist精灵bounds
1条回答
网友
1楼 · 发布于 2024-09-29 23:24:42

碰撞检查只是检查两个矩形精灵是否有一个公共区域。 没有一个内置的碰撞,不允许玩家在碰撞时输入。你得自己写。在

当发生碰撞时,您可能需要更改播放器坐标。例如:

假设我们玩马里奥。当马里奥跳伞时,检查是否有碰撞。在某个地方,我们将存储马里奥在y轴上的速度。当碰撞返回True时,对于任何一个块,我们现在将速度设置为0,并将y设置为块的顶部/底部。如果它会是底部,我们还是继续跳下去,这样它就可以倒回地面了。在

我对爬行动物的建议是有一些oldx和oldy值,在碰撞发生时返回。这样爬山虎就不会撞到墙上了。另一种方法是在发生碰撞时简单地改变方向,但这可能并不总是有效的。在

相关问题 更多 >

    热门问题