habe das Problem das der Schuss einer Kanone, die auf nem Vehikel montiert ist und nach links und rechts schwenken kann,
nicht in die Richtung des Winkels der Kanone fliegt.
Kann da jemand helfen?
Der Code der Kanone und des Schusses habe ich unten gepostet.
Procedure UpdateMove()
Static OldTime.i
Protected Time.i, Factor.f
If OldTime = 0: OldTime = ElapsedMilliseconds(): EndIf; Beim ersten Durchlauf ist Oltime = 0, dann wäre der Factor viel zu groß.
; Jetzt holen wir die Zeit, seid dem letzten Durchlauf und teilen die durch 1000
; 1000 ms ergeben eine Sekunde und somit ergibt sich der Factor, mit dem wir die Geschwindigkeit berechnen können
Factor = (ElapsedMilliseconds() - OldTime ) * 0.001
;*************************************************************************************************************************************
;
; Da nicht alle PC's gleich schnell laufen, bewegen sich die Schüsse auch verschieden schnell, wenn sie
; mit einem festen Wert bewegst werden. Dadurch das wir die Bewegung zeitgesteuert berechnen, bewegen sich die Sprites auf jedem PC gleich schnell.
; XPosition + ObejktGeschwindigkeit in Pixel pro Sekunde * Cos( Radian( ObjektBewegungsWinkel ) ) * Factor
; und das gleiche analog mit der YPosition, wie in der For/Next Schleife.....
;
;*************************************************************************************************************************************
ForEach Shoot_Act_List()
Shoot_Act_List()\x + Shoot_Act_List()\speed + Cos( Radian( Shoot_Act_List()\flightangle ) ) * Factor
Shoot_Act_List()\y + Shoot_Act_List()\speed + Sin( Radian( Shoot_Act_List()\flightangle ) ) * Factor
Next
OldTime = ElapsedMilliseconds()
EndProcedure