了解发生碰撞的矩形的名称

2024-05-15 03:48:42 发布

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

当我的子弹碰到这个矩形时,我试图在碰撞列表中找到一个特定的矩形。 我有92个矩形,每个矩形都有一个类型:“不透明”、“透明”。 当我在游戏开始时创建矩形,我把它们放在一个列表中,以测试碰撞列表。以及一个按顺序包含所有类型的列表。 像

collide_wall_list = [rect,rect,rect,rect]
#Each rect is a pygame.draw.rect

wall_type_list = ["Opaque","Opaque","Opaque","Transparent"]

它们是按顺序创建的,因此第二个rect是第二个类型。在

^{pr2}$

这是为了测试我的子弹是否与矩形列表相撞。 现在,问题是使用碰撞列表,我们无法知道哪个矩形被碰撞。 你知道怎么知道哪个矩形物体在碰撞吗?对于类型来说,这很简单,因为矩形和类型在同一位置。在


Tags: rect游戏类型列表顺序ispygamelist
2条回答

colliblist返回第一次碰撞的索引,如果没有发生碰撞,则返回-1:

“测试矩形是否与一系列矩形中的任何一个相冲突。返回找到的第一个碰撞的索引。如果没有发现冲突,则返回索引-1。“

http://www.pygame.org/docs/ref/rect.html

很明显,你有一个函数,它检查是否发生了碰撞,返回-1?我不知道。但我的想法是:试着让你的功能看起来像这样:

int IsCollision( "all your variables" + int n) { // n = the current rect's number
         if ("collision" == true) {
               return n;
            } else {
            return 0;
           }
}

当然,现在您需要将另一行更改为:

^{pr2}$

相关问题 更多 >

    热门问题