ok iam back again

i found the failure i have
i used the wrong function for the compenetration d

so a little problem/failure i have is when i collide to slide
i used for the new Vector coordinates
[pascal]
a,v: TVector;
...
a:=add(a,v);
[/pascal]
and not
[pascal]
a:=sub(a,v);
[/pascal]
when i use sub the Vector a and b will be the same and i see only one
circle and cant move :cry:
but when i use add i can "slide" but on slide my circle step back?
example:
i slide in direction right the circle step right AND back
but the step back is the failure :cry:

here the short code:
[pascal]
var
d: Double;
v: TVector;
...
d:=distv(a,b)-0.6; //0.6 are the value of size+size

if d<0 then // if collide
begin
Form1.Caption:='yeah';
// find vector distance (it will have length=distance, no good, must be normalized)
v:=sub(a,b);
// normalize the vector, now direction is ok, and length is 1
normalize(v);
// make length equal to compenetration value
multiply(v,d);
// ok, now vector points from a to b, length d. We subtract from position
// so it will be pulled away
a:=add(a,v);

end else Form1.Caption:='no';
[/pascal]

Thanks u helped me so much, i wouldnt figure it in a year :roll: