ersteinmal hallo bin hier schonwas länger angemeldet brauchte aber bisher noch nicht wirklich hilfe
jetzt schon^^
mein problem ist das wir für die schule ein prog schreiben sollen indem sich auf einem canvas 2 kreise bewegen die gleiche oder verschiedene geschwindigkeiten haben
treffen diese auf die wände sollen sie reflektiert werden was auch klappt aller dings sollen sie auch reflecktiert werden wenn sie sich gegenseitig berühren und da liegt mein problem
hier einmal den quelltext
Code:
verschx := StrToInt(edit1.text);
verschy := StrToInt(edit2.text);
verschx1 := StrToInt(edit3.text);
verschy1 := StrToInt(edit4.text);
image1.Canvas.Pen.Color := clwhite;
image1.Canvas.Brush.Color := clwhite;
image1.Canvas.Rectangle(x,y,x+50,y+50);
image1.Canvas.Rectangle(x1,y1,x1+50,y1+50);
x := x+verschx;
y := y+verschy;
x1 := x1+verschx1;
y1 := y1+verschy1;
image1.Canvas.Pen.Color := clred;
image1.Canvas.Brush.Color := clred;
{if (((x1 <= x+50) and (x1 >= x)) and ((y1 <= y+50) and (y1 >= y)))
then begin
edit1.Text := IntToStr(StrToInt(Edit1.Text)*(-1));
edit3.Text := IntToStr(StrToInt(Edit3.Text)*(-1));
edit2.Text := IntToStr(StrToInt(Edit2.Text)*(-1));
edit4.Text := IntToStr(StrToInt(Edit4.Text)*(-1));
end;}
if (x1+25-x+25+y1+25-y+25) > 0
then if (Round(sqrt(x1+25-x+25+y1+25-y+25))) <= 50
then begin
edit1.Text := IntToStr(StrToInt(Edit1.Text)*(-1));
edit3.Text := IntToStr(StrToInt(Edit3.Text)*(-1));
edit2.Text := IntToStr(StrToInt(Edit2.Text)*(-1));
edit4.Text := IntToStr(StrToInt(Edit4.Text)*(-1));
end ;
if x <= 0
then edit1.Text := IntToStr(StrToInt(Edit1.Text)*(-1));
if x >= image1.Width-50-StrToInt(Edit1.Text)
then edit1.Text := IntToStr(StrToInt(Edit1.Text)*(-1));
if y <= 0
then edit2.Text := IntToStr(StrToInt(Edit2.Text)*(-1));
if y >= image1.Height-50-StrToInt(Edit2.Text)
then edit2.Text := IntToStr(StrToInt(Edit2.Text)*(-1));
image1.Canvas.Ellipse(x,y,x+50,y+50);
if x1 <= 0
then edit3.Text := IntToStr(StrToInt(Edit3.Text)*(-1));
if x1 >= image1.Width-50-StrToInt(Edit3.Text)
then edit3.Text := IntToStr(StrToInt(Edit3.Text)*(-1));
if y1 <= 0
then edit4.Text := IntToStr(StrToInt(Edit4.Text)*(-1));
if y1 >= image1.Height-50-StrToInt(Edit4.Text)
then edit4.Text := IntToStr(StrToInt(Edit4.Text)*(-1));
image1.Canvas.Brush.Color := clblue;
image1.Canvas.Pen.Color := clblue;
image1.Canvas.Ellipse(x1,y1,x1+50,y1+50);
hoffe das ihr mir helfen könnt