Pygame“组碰撞”?

2024-04-27 00:21:32 发布

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

下面是我的“俄罗斯方块”游戏代码的一部分。在

我要做的只是使下落形状的底部在碰撞时与静态形状的顶部在高度上相等(-1)。然而,事实上,我只能将接触位置设置为移动形状的底部;这样会使它看起来陷入与之碰撞的形状中(这会抛出整个“块”错觉)。在

    stick = pygame.sprite.groupcollide(pieces_mobs, static_mobs, False, False, pygame.sprite.collide_mask)

这是我当前使用的方法,因为我不确定如何访问“groupcollide”元组中的第二个值-

^{pr2}$

这就是我想要的逻辑-

for piece in pieces_mobs:
    for pieces, static in stick:
        contact = static.rect.top
        pieces.static(contact)
    piece.update()

可能真的很简单,但我找不到任何例子。在


Tags: infalse游戏forpiececontactstaticpygame
1条回答
网友
1楼 · 发布于 2024-04-27 00:21:32

根据pygame文档,groupcollide的输出是一个字典,其中的键是第一个组中的一个精灵,值是键精灵与之碰撞的第二个组中所有精灵的列表。为了实现你的目标:

stick = pygame.sprite.groupcollide(pieces_mobs, static_mobs, False, False, pygame.sprite.collide_mask)

for piece_mob, static_mob in stick.items():
    piece_mob.rect.bottom = static_mob[0].rect.top

相关问题 更多 >