gta maussteuerungsproblem
Übersicht

![]() |
worschtbrotBetreff: gta maussteuerungsproblem |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo zunächst einmal, ja ich weiss das es bereits etliche threads zu diesem thema gibt, dennoch ist bei mir ein problem aufgetreten, welches ich bisher noch nirgends einden konnte.
und zwar habe ich das gta script wie folgt verändert: Code: [AUSKLAPPEN] Graphics 800,600,32,0
SetBuffer BackBuffer() Dim Auto(359) TFormFilter 0 For winkel# = 0 To 359 Step 1 Auto(winkel#)=LoadImage("auto.bmp") MidHandle Auto(winkel#) RotateImage auto(winkel#),winkel MaskImage Auto(winkel#),0,0,0 Next Global x#=200 Global y#=200 Global geschwindigkeit#=0.3 While Not KeyHit(1) Cls mx=MouseY() my=MouseY() winkel#=((ATan2((y#-my()),(x#-mx())) + 360) Mod 360)+90 If winkel# > 359 Then winkel# = 0 If winkel# < 0 Then winkel# = 359 If KeyDown(200) Then x = x - Sin(winkel#)*geschwindigkeit y = y + Cos(winkel#)*geschwindigkeit EndIf DrawImage auto(winkel#),x#,y# Flip Wend End so und nun ist mein problem, dass immer dann wenn mx kleiner als x# und my größer als y# sich meine figur sich nach unten richtet (winkel 90°) und nicht mehr bewegt bis my wieder kleiner bzw mx wieder größer wird. woran liegt das? mfg worschtbrot |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also...
Code: [AUSKLAPPEN] winkel#=((ATan2((y#-my()),(x#-mx())) + 360) Mod 360)+90
Warum addierst du da am Schluss 90? Das würde ich lassen. Warum sind da Funktionsklammern hinter mx und my? Du vertauschst Sinus und Cosinus hier... richtig wäre Code: [AUSKLAPPEN] x = x + Cos(winkel#)*geschwindigkeit
y = y - Sin(winkel#)*geschwindigkeit |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
robotx |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] mx=MouseY()
my=MouseY() Tippfehler? |
||
www.botbomb.robotzgames.de
www.robotzgames.de |
![]() |
worschtbrot |
![]() Antworten mit Zitat ![]() |
---|---|---|
so habe den schreibfehler verbessert(ist mir nicht aufgefallen, da kurz vor pasten hinzugefügt), ebenso sie funktionsklammern, da ich zuvor für mousex und y keine variablen hatte.
als zweites, habe ich sin un cos vertauscht da das bild sonst entweder spiegelverkeht läuft oder andere unerwünschte anstalten macht(vermutlich da sich mit bewegen des objektes,ja auch seine position im bezug auf die maus verändert), und so bewegt sich mein "auto" nun bis zu position der maus. allerdings ist mein problem immer noch nicht gelöst... ![]() mfg worschtbrot |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ohne Code nix los.
Mein Tipp wäre aber folgendes: So bekommt man den Winkel, auf dem man sich bewegen muss um zur Maus zu kommen: Code: [AUSKLAPPEN] ATan2( ( my-y# ),( mx-x# ) )
In deinem Code steht's anders herum. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
worschtbrot |
![]() Antworten mit Zitat ![]() |
---|---|---|
super!wenn ich es so mache wie du meintest xerxes, dann habe ich das selbe problem nur genau anders herum, dann streikt er nämlcih wenn mx größer ist als x# und my kleiner ist als y#. ![]() so und hier ist noch mal der code: Code: [AUSKLAPPEN] Graphics 800,600,32,0
SetBuffer BackBuffer() Dim Auto(359) TFormFilter 0 For winkel# = 0 To 359 Step 1 Auto(winkel#)=LoadImage("auto.bmp") MidHandle Auto(winkel#) RotateImage auto(winkel#),winkel MaskImage Auto(winkel#),0,0,0 Next Global x#=200 Global y#=200 Global geschwindigkeit#=0.3 While Not KeyHit(1) Cls mx=MouseX() my=MouseY() winkel#=((ATan2((y#-my),(x#-mx)) + 360) Mod 360)+90 If winkel# > 359 Then winkel# = 0 If winkel# < 0 Then winkel# = 359 If KeyDown(200) Then x = x - Sin(winkel#)*geschwindigkeit y = y + Cos(winkel#)*geschwindigkeit EndIf DrawImage auto(winkel#),x#,y# Flip Wend End freue mich auf weitere lösungsvorschläge^^ mfg worschtbrot |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eigentlich willst du ja den Winkel mit Modulo auf 360° begrenzen.
Aber danach rechnest du weiterhin 90° drauf und verwendest dann die Zeilen Code: [AUSKLAPPEN] If winkel# > 359 Then winkel# = 0
If winkel# < 0 Then winkel# = 359 ... Klingelt's? |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
worschtbrot |
![]() Antworten mit Zitat ![]() |
---|---|---|
oh man bin ich blöd ![]() gut dann fallen mir sogar auf anhieb mehrere lösungen ein^^ gut danke xerxes mfg worschtbrot |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group