[英]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.