gpt4 book ai didi

c++ - 使用自定义 QGraphicsItem 类进行 QT 碰撞检测

转载 作者:太空狗 更新时间:2023-10-29 21:43:12 30 4
gpt4 key购买 nike

我正在尝试创建一个子弹类,一旦它检测到它与某物发生碰撞,它就会删除一个敌人类。我正在尝试做类似的事情:

void bullet::DoCollision()
{
if(collidesWithItem(enemy))
{
QList<enemy> collisions = collidingItems(enemy);
}
//sudo code
//foreach collision
//delete enemy
}
//delete myself

我的做法是否正确?它们都是 QGraphicsItems

最佳答案

您可以使用 QGraphicsItem::collidingItems 返回与该项目发生碰撞的所有项目的列表。获取列表后,您可以检测碰撞的元素是否为敌人类型,如果是则将其移除:

QList<QGraphicsItem *> list = collidingItems() ;

foreach(QGraphicsItem * i , list)
{
enemy * item= dynamic_cast<enemy *>(i);
if (item)
{
myScene->removeItem(item);
}
}

关于c++ - 使用自定义 QGraphicsItem 类进行 QT 碰撞检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23533691/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com