所以,我这里有一些代码,但它似乎不起作用.我正在try 这样做,如果我的敌人落在一块瓷砖上,它会被送回瓷砖的顶部,这样它就不会在地板上相隔一段时间.碰撞判断确实有效,但我不知道如何在self 敌人组中循环,也在self 瓷砖组中循环,看看他们中的任何一个是否发生碰撞,碰撞的敌人被送回.enemy.direction.y just checks if the enemy is falling

enemytilecollision=pygame.sprite.groupcollide(self.tiles,self.enemy,False,False)
if enemytilecollision:
    for enemy in self.enemy.sprites():
        if enemy.direction.y>0:
            for tile in self.tiles.sprites():
                enemy.rect.bottom=tile.rect.top
                enemy.direction.y=0

推荐答案

pygame.sprite.groupcollide将返回您需要的所有内容.它返回一个包含与敌人冲突的所有瓷砖的词典.而字典中每一项的值都是瓷砖与之碰撞的敌人列表:

enemytilecollision = pygame.sprite.groupcollide(self.tiles,self.enemy,False,False)

for tile, collidingEnemies in enemytilecollision.items():
    for enemy in collidingEnemies:
        # tile collides with enemy 
        print(tile.rect, enemy.rect)

Python相关问答推荐

如何在Deliveryter笔记本中从同步上下文正确地安排和等待Delivercio代码中的结果?

使用LineConnection动画1D数据

在Python中对分层父/子列表进行排序

将DF中的名称与另一DF拆分并匹配并返回匹配的公司

Select 用a和i标签包裹的复选框?

Odoo 14 hr. emergency.public内的二进制字段

未删除映射表的行

删除所有列值,但判断是否存在任何二元组

将数据框架与导入的Excel文件一起使用

如何使用LangChain和AzureOpenAI在Python中解决AttribeHelp和BadPressMessage错误?

在Wayland上使用setCellWidget时,try 编辑QTable Widget中的单元格时,PyQt 6崩溃

pyscript中的压痕问题

如果初始groupby找不到满足掩码条件的第一行,我如何更改groupby列,以找到它?

(Python/Pandas)基于列中非缺失值的子集DataFrame

人口全部乱序 - Python—Matplotlib—映射

如果有2个或3个,则从pandas列中删除空格

在任何要保留的字段中添加引号的文件,就像在Pandas 中一样

在不中断格式的情况下在文件的特定部分插入XML标签

当lambda函数作为参数传递时,pyo3执行

如何在networkx图中提取和绘制直接邻居(以及邻居的邻居)?