bewegung zu ziel und verdrehung
Übersicht

da_pollerBetreff: bewegung zu ziel und verdrehung |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich habe ein bild (360 grad in 1 grad schritten gedreht) und dieser spieler dreht sich und bewegt sich zu der position die mit der maus angeklickt wude..
jedoch am ende der bewegung dreht er sich auf 0 grad drehung .. und das sieht alles andere als schön aus.. kann ich das irgendwie beheben?(bin nicht soo mega fit in mathe.. allein der code den ich bis jetzt hab war viel für die grauen zellen :) ) Code: [AUSKLAPPEN] While Not KeyHit(1) ;Beginn der Hauptschleife
ClsColor 100,100,100 Cls mx=MouseX():my=MouseY();mauspos If MouseDown(1) Then pzx=mx pzy=my run=1 EndIf Color 255,0,255 Line pzx,pzy,x,y winkel=((ATan2(pzx-x,y-pzy)+360)Mod 360)-90 If winkel => 359 Then winkel = winkel-359 If winkel <= 0 Then winkel = winkel+359 If x<>pzx Or y<>pzy And run=1 Then x = x + Cos(winkel)*geschwindigkeit y = y + Sin(winkel)*geschwindigkeit EndIf If x=pzx And y=pzy Then run=0 Color 255,255,255 Rect mx-1,my-1,3,3,1 Text 10,10,mx+" "+my+" "+x+" "+y+" "+winkel DrawImage player(winkel),x,y Flip Wend |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eine Möglichkeit die mir so einfiel:
Code: [AUSKLAPPEN] Graphics 800,600,0,2
SetBuffer BackBuffer() ClsColor 100,100,100 Local Timer=CreateTimer(75) Local X#=100 Local Y#=100 Local pzX=0 Local pzY=0 Local Winkel#=0 Local Run=0 Local MX%=0 Local MY%=0 Local Geschwindigkeit=2 While Not KeyHit(1) ;Beginn der Hauptschleife Cls MX=MouseX() ;Mauspos MY=MouseY() If MouseDown(1) Then pzX=MX pzY=MY Winkel=((ATan2(pzX-X,Y-pzY)+360)Mod 360)-90 Run=1 EndIf Color 255,0,255 Line pzX,pzY,X,Y If Winkel > 360 Then Winkel = Winkel - 360 If Winkel < 0 Then Winkel = Winkel + 360 If Run = 1 Then If Abs(pzX-X) < Geschwindigkeit * 2 Then If Abs(pzY-Y) < Geschwindigkeit * 2 Then Run = 0 End If End If End If If X <> pzX Or Y <> pzY And Run = 1 Then X = X + Cos(Winkel)*Geschwindigkeit Y = Y + Sin(Winkel)*Geschwindigkeit EndIf If X = pzX And Y = pzY Then Run = 0 Color 255,255,255 Rect MX-1,MY-1,3,3,1 Text 10,10,MX+" "+MY+" "+X+" "+Y+" "+Winkel+" RUN:"+Run Line X,Y,X+Cos(Winkel)*20,Y+Sin(Winkel)*20 ; DrawImage player(winkel),x,y WaitTimer(Timer) Flip 0 Wend |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
die idee mit dem nicht verdrehen ist nciht schlecht aber nach deinem code läuft mein player am ziel vorbei ins unendliche ^^
aber schon ein anfang ichspiel mcih ncoh bisl rum.. ps.. it dem timer war ein guter wink danke .. :) edit: problem gelöst winkel player mussten float sein.. |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, das liegt an etwas, wovon ich anders ausgegangen bin.
u.a. an Code: [AUSKLAPPEN] If Winkel > 360 Then Winkel = Winkel - 360
If Winkel < 0 Then Winkel = Winkel + 360 Dazu habe ich den Code noch nachträglich geändert. Da hast du anscheinend bereits die ersten Versionen getestet. Teste den obigen Code nochmal. Sollte jetzt gehen. Edit1: OK, ich sollte vielleicht zu ende lesen, wenn ich auf was antworte. Hast es ja anscheiend bereits selbst gelöst. *lalala* |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
kein problem du warst super hilfestellung ..
schüsse hab ich auch schon drin jetzt noch ne tilemap oder so in der art um auch schöne maps machen zu können wird der nächste spaß(colision)^^ |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group