Einzelnen Beitrag anzeigen

supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Der Klassiker Pong & die Winkel...

  Alt 12. Dez 2003, 01:29
achja für die funktionen wo man braucht um ball flugwinkel + geschwindigkeit = neue position von ball ( sin / cos )
hab ich auch den code.. aber der müsste eigentlich auch noch zu schaffen sein

hier noch n paar funktionen:

vorberechnung der cos/sin ergebnisse:
Delphi-Quellcode:

  sina: array[0..360] of real; // vorberechnete werte für sin
  cosa: array[0..360] of real; // vorberechnete werte für cos

procedure initfunc;
var
i: integer;
begin
for i := 0 to 360 do begin
sina[i] := Sin(cycletorad( i / 360));
cosa[i] := Cos(cycletorad( i / 360));

end;
end;
hier noch bissi code wo ich fürs schiffe begewen mal gehabt habe:
Delphi-Quellcode:

              // BEWEGEN ( x/y verschieben )
                         if (sh[i].mode >= 1) then begin // fliegt er ?
                         if (sh[i].typ = 1) then begin // jäger
                         sh[i].x := ( cosa[round(sh[i].a)] * (sh[i].v*1.1) ) + sh[i].x;
                         sh[i].y := ( sina[round(sh[i].a)] * (sh[i].v*1.1) ) + sh[i].y;
                         end;
                         if (sh[i].typ = 2) then begin // advjäger
                         sh[i].x := ( cosa[round(sh[i].a)] * (sh[i].v*1.8) ) + sh[i].x;
                         sh[i].y := ( sina[round(sh[i].a)] * (sh[i].v*1.8) ) + sh[i].y;
                         end;
                         if (sh[i].typ = 3) then begin // bomber
                         sh[i].x := ( cosa[round(sh[i].a)] * (sh[i].v*1.4) ) + sh[i].x;
                         sh[i].y := ( sina[round(sh[i].a)] * (sh[i].v*1.4) ) + sh[i].y;
                         end;
                         if (sh[i].typ = 4) then begin // trans
                         sh[i].x := ( cosa[round(sh[i].a)] * sh[i].v ) + sh[i].x;
                         sh[i].y := ( sina[round(sh[i].a)] * sh[i].v ) + sh[i].y;
                         end;
sh[] is array mit schiffen
sh[].x is x position
sh[].y is y position
sh[].a ist winkel in ° ( 0 -360 )
sh[].v ist geschwindigkeit ( pixel pro bild )

alles klar ? :>
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat