Dobrý večer,
Naskytl se mi takový problém, v programu Qt jsem si udělal hru a nemám ponětí jak zjistit kolizi mezi objekty které mám v Qlistech.
QList<meteor*>meteory;
QList<bullet*>naboj;
pomocí ifů sem jim zadal požadavky a potřebuji zajistit kolizi naboje s meteorem.
kód:
for(int i=0;i<meteory.length();++i){
meteory[i]->move();
if(meteory[i]->x()>700){
meteory[i]->setX(0-meteory[i]->boundingRect().height());
meteory[i]->setY(qrand()%700);
}
if(meteory[i]->collidesWithItem(p)||meteory[i]->collidesWithItem(p2)){
meteory[i]->setY(qrand()%700);
meteory[i]->setX(-40);
}
if(!scene()->collidingItems(meteory[i]).isEmpty()){
meteory[i]->setY(qrand()%700);
meteory[i]->setX(-40);
}
}
for(int i=0;i<naboj.length();++i){
naboj[i]->move();
if(naboj[i]->y()>750||naboj[i]->y()<-50){
naboj[i]->setSpeed_y(0);
}
if(naboj[i]->collidesWithItem(p2)){
p2->setY(150);
p2->setX(330);
}
if(naboj[i]->collidesWithItem(p)){
p->setY(550);
p->setX(330);
}
Výsledek:
if(meteory[i]->colidesWithItem(naboj[i]))
{
meteory[i]->setY(qrand()%700);
meteory[i]->setX(-40);
}