Już wstawiam i wyjaśniam. Z klas TImage i TShape potrzebuje wyciągnąć tylko pozycje na ekranie. w Obydwu przypadkach odwołuje się tak samo Klasa->Left i Klasa->Top tylko to są różne funkcje i aktualnie mam stworzone dwie funkcje z skopiowanym kodem identycznie różniące się tylko pierwszym parametrem.
bool collision(TShape * a, TShape * b){
// left, right, top, bottom
float al, ar, at, ab;
float bl, br, bt, bb;
al = a->Left;
ar = a->Left + a->Width;
at = a->Top;
ab = a->Top + a->Height;
bl = b->Left;
br = b->Left + b->Width;
bt = b->Top;
bb = b->Top + b->Height;
// prawy bok a z lewym bokiem b && dół a z góra b
if(ar >= bl && ar <= br && ab >= bt && ab <= bb)
return true;
// prawy bok b z lewym bokiem a && dół b z górą a
if(br >= al && br <= ar && bb >= at && bb <= ab)
return true;
return false;
}
Druga funkcja jest identyczna tylko za pierwszy argument przyjmuje TImage. tylko nie widzę sensu tworzenia dwoch takich samych funkcji z dokładnie taką samą zawartoscią.
Z dokumentacji widzę że obydwie klasy dziedziczą po
Vcl::Controls::TGraphicControl
za każdą cenną poradę, wskazówki będę bardzo wdzięczny, dopiero zaczynam z c++ :)
à propos tej funkcji, Taki kod rozkminiłem na sprawdzanie kolizji, niby działa tak jak chce ale jeśli macie pomysł jak to prościej zrobić to chetnie wysłucham. ( nie sugerowac się komentarzami przy ifach bo przerabialem )