Mein Prolem ist leider folgendes: Ich versuche eine Kollisionserkennung für dieses Beispiel zu schreiben. Das bedeutet wenn ich ein Canvas Objekt auf ein Anderes "lege" soll es automatisch auf einen freien bereich verschoben werden.
Wenn ich das richtig verstanden habe muß ich doch eigentlich (bezogen auf das Beipiel)
QCanvasItemList il = c->collisions( myCanvas.boundingRect() );
for( QCanvasItemList::Iterator it=il.begin(); it!=il.end(); ++it )
{
if( (*it)->rtti() != 4 ){ // 4 ist ja für Polygon
myCanvas.moveBy(100,0);
Doch leider klappt das absolut nicht. Ich habe auch schon diverse andere Sahcen ausprobiert und bin so langsam mit meinem Latein am ende :/
Wenn einer ein anderes Beispiel oder ein Vorschlag hat...
Damit funktioniert das nun soweit das immer wenn ein neues QCanvasPolygon erstellt wird dieses auf Kollision ermittelt wird. Sollte eine Kollision festgestellt werden, wird das Polygon um die Breite des umschließenden bounding Rect verschoben. Komischerweise wird das zweite Polygon gleich 2 mal verschoben ..?? Aber nur das zweite... verwirrend