Anonymní profil Franta – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Franta – Programujte.comAnonymní profil Franta – Programujte.com

 

Příspěvky odeslané z IP adresy 109.234.41.–

Franta
C / C++ › QT - Tvorba hry
27. 3. 2018   #220144

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

}

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý