簡體   English   中英

使用自定義QGraphicsItem類進行QT沖突檢測

[英]QT collision detection with custom QGraphicsItem classes

我正在嘗試創建一個子彈類,一旦它檢測到它與某個東西發生碰撞就會刪除它。 我正在嘗試做類似的事情:

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);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM