Einzelnen Beitrag anzeigen

Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: viele fliegende sich abstoßende Bälle??

  Alt 3. Nov 2004, 19:33
Zitat von FlorianK:
Ich würde es so machen:

Delphi-Quellcode:
procedure stoss;
var ball: array [1..30] of tball;

for a := 0 to High(BallArray)-2 do
begin
  for b := a+1 to High(BallArray)-1 do
  begin
    if ball[a].Left+ball[a].Width=ball[b].Left then // Wenn es in tball Left, Top, Width und Height gibt...
    begin
      //(...X-Abstoßung...)
    end;
    if ball[a].Top+ball[a].Height=ball[b].Top then // Wenn es in tball Left, Top, Width und Height gibt...
    begin
      //(...Y-Abstoßung...)
    end
  end;
end;

Florian K.
Sorry, aber völliger Quatsch

1) So wie das Array deklariert ist gibts dirket eine Zugriffsverletzung, da ich von einem null-basierten Array ausging (array[0..max] oder dynamisch).

2) Die Klasse TBall, so wie sie implemietert ist, hat kein "left" oder "top". Du gehst von TShapes aus, und das ist a) saumäßiger Stil, und b) unhandlich. Wie im Programm ist es am besten gelöst: Mittelpunkt und Radius beschreiben einen Ball.
Die reine Technik mit der die Kollision überprüft wird ist okay, nur muss die Prozedur wie Toxman es schrieb universeller gemacht werden, so dass sie beliebige Instanzen von TBall entgegen nehmen kann. Und das hat Toxman ja schon erledigt


Grundsätzlich @Carolin:
Die Formatierung deines Codes ist gelinde gesagt grausam. Macht das euer Lehrer auch so!?
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat