- procedure tdotgame.proccessgame(time: integer);
- var
- richt: Tvector;
- r: integer;
- sricht: Tvector;
- rricht: Tvector;
- w: single;
- awinkel,winkel: single;
- begin
- richt:=fplayer.richtungsvektor; //rricht ist die richtung in die das Raumschiffgerade fliegt.
- r:=trunc(sqrt(Power((fplayer.pos.x-400),2)+PoweR(fplayer.pos.y-300,2))*100);// r ist der Radius (vergrössert damit die anziehungskraft auch wirklich grösser ist wenn das raumschiff näher am Planeten ist.
- sricht[0]:=400-fplayer.pos.x;
- sricht[1]:=300-fplayer.pos.y;
- sricht[2]:=0;
- sricht[3]:=0;
- rricht:=sricht;//sricht ist die richtung der schwerkraft und rricht die richtung der fliehkraft
- winkel:=degtorad(arctan((fplayer.pos.y-300)/(fplayer.pos.x-400)));
- awinkel:=degtorad(arctan((fplayer.alt.y-300)/(fplayer.alt.x-400)));
- if winkel>awinkel then
- begin
- winkel:=winkel+360;
- end;
- w:=2*Pi*((winkel-awinkel)/time); //w ist die kreisgeschwindigkeit
- VectorMult(rricht, -w*w*10000);
- VectorMult(sricht, 10000000/Power(r*0.5, 2));
- VectorMult(richt, (fplayer.speed)/10);
- AddVector(richt, sricht);
- Addvector(richt,rricht); //fliehkraft schwerkraft und normalrichtung werden berechnet und addiert.
- fplayer.alt.x:=fplayer.pos.x;
- fplayer.alt.y:=fplayer.pos.y;
- fplayer.pos.x:=trunc(fplayer.pos.x+richt[0]);
- fplayer.pos.y:=trunc(fplayer.pos.y+richt[1]);
- end;