Author Topic: falsche Winkel  (Read 6452 times)

Offline WPShadow

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1667
    • View Profile
    • http://lostrevenant.blogspot.com
falsche Winkel
« on: 2012-Aug-08 »
Hi,

Ziel ist es, daß sich das Objekt (ownship.x, ownship.y) zur Maus (mx, my) hin bewegt. Dabei hole ich mir den Winkel (phi) zwischen den beiden.

Was ist hier falsch:

Code: (glbasic) [Select]
pos_x = mx - ownship.x
pos_y = my - ownship.y

phi = ATAN(pos_y, pos_x)

move_x = (SIN(phi) * ownship.speed) * t
move_y = (COS(phi) * ownship.speed) * t

INC ownship.x, move_x
INC ownship.y, move_y

GLG

W.
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Offline backslider

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 892
    • View Profile
Re: falsche Winkel
« Reply #1 on: 2012-Aug-08 »
Hi WPShadow,

Du kannst ja mal in meinem 2DEntitySystem gucken, wie ich es gelöst habe. ;)

http://www.glbasic.com/forum/index.php?topic=8242.0

Cheers

Offline Poetronic

  • Mr. Drawsprite
  • **
  • Posts: 98
    • View Profile
Re: falsche Winkel
« Reply #2 on: 2012-Aug-08 »
Kann man den Winkel zwischen Start- und zielkoordinate nicht wie folgt berechnen?

Code: (glbasic) [Select]
winkel = ATAN(pos.y - mouse.y, pos.x - mouse.x)
« Last Edit: 2012-Aug-09 by Poetronic »
ILI-Blocks, my first game ever - please check it out! http://www.glbasic.com/forum/index.php?topic=8654.0

Offline WPShadow

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1667
    • View Profile
    • http://lostrevenant.blogspot.com
Re: falsche Winkel
« Reply #3 on: 2012-Aug-09 »
Ok, einen Teil der Fehler habe ich raus gebracht, aber leider nicht alles...

Code: (glbasic) [Select]

pos_x = mx - ownship.x
pos_y = my - ownship.y

phi = 360 + ATAN(pos_y, pos_x)

e_x = ABS(pos_x)
e_y = ABS(pos_y)



entfernung = SQR((e_x * e_x) + (e_y * e_y))

PRINT entfernung, 0, 20
PRINT phi, 0, 40


IF entfernung > 1
move_x = (COS(phi) * ownship.speed) * t
move_y = (SIN(phi) * ownship.speed) * t
ENDIF

INC ownship.x, move_x
INC ownship.y, move_y

ownship.x = INTEGER(ownship.x)
ownship.y = INTEGER(ownship.y)

AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Offline backslider

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 892
    • View Profile
Re: falsche Winkel
« Reply #4 on: 2012-Aug-09 »
Geht das hier nicht?
Code: (glbasic) [Select]
//das hier mal umdrehen ganz oben?
pos_x = ownship.x - mx
pos_y = ownship.y - my

Offline WPShadow

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1667
    • View Profile
    • http://lostrevenant.blogspot.com
Re: falsche Winkel
« Reply #5 on: 2012-Aug-09 »
Nö, hat leider nichts gebracht!
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Offline backslider

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 892
    • View Profile
Re: falsche Winkel
« Reply #6 on: 2012-Aug-09 »
Was genau willst Du denn jetzt überhaupt noch wissen?
Die Entfernung oder den Winkel zur Maus? :D

Offline WPShadow

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1667
    • View Profile
    • http://lostrevenant.blogspot.com
Re: falsche Winkel
« Reply #7 on: 2012-Aug-09 »
Mein Ziel ist es eine saubere Bewegung zur Maus hin zu bekommen. Komischerweise bewegt sich das Ganze aber nicht sauber.

Das ist eigentlich alles, was ich möchte...
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Offline Poetronic

  • Mr. Drawsprite
  • **
  • Posts: 98
    • View Profile
Re: falsche Winkel
« Reply #8 on: 2012-Aug-09 »
Bitteschön!  :)

Code: (glbasic) [Select]
GLOBAL x#=100
GLOBAL y#=100
GLOBAL angle#=0
GLOBAL speed#=2

GLOBAL mx#,my#,b1,b2

SETSCREEN 640,480,0

WHILE TRUE

PRINT mx,10,10
PRINT my,10,20

LimitMouse()

DRAWRECT mx,my,32,32,RGB(255,0,0) // Mouse#
DRAWRECT x,y,32,32,RGB(255,255,255) // Object

MoveObjectToMouse()

SHOWSCREEN

WEND

FUNCTION LimitMouse:
MOUSESTATE mx, my,b1, b2
IF mx<0 THEN mx=0
IF mx>640-32 THEN mx=640-32
IF my<0 THEN my=0
IF my>480-32 THEN my=480-32
SETMOUSE mx, my
ENDFUNCTION

FUNCTION MoveObjectToMouse:
angle = ATAN(my - y, mx - x)
x=x+COS(angle)*speed
y=y+SIN(angle)*speed
ENDFUNCTION

In Deinem Code müsste es dann wohl heißen:

Code: (glbasic) [Select]
phi = ATAN(mouse_y - pos_y, mouse_x - pos_x)
« Last Edit: 2012-Aug-10 by Poetronic »
ILI-Blocks, my first game ever - please check it out! http://www.glbasic.com/forum/index.php?topic=8654.0

Offline WPShadow

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1667
    • View Profile
    • http://lostrevenant.blogspot.com
Re: falsche Winkel
« Reply #9 on: 2012-Aug-09 »
Klasse, hat funktioniert! Danke sehr!

Irgendwo hatte ich einen Denkfehler drin...

Hauptsache es funktioniert!  :booze: Nochmals danke!!
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5107
  • O Rly?
    • View Profile
Re: falsche Winkel
« Reply #10 on: 2012-Aug-10 »
Klasse, hat funktioniert! Danke sehr!

Irgendwo hatte ich einen Denkfehler drin...

Hauptsache es funktioniert!  :booze: Nochmals danke!!

*HUST* Wie so oft */HUST* :D
I <3 DGArray's :D

PC:
AMD Ryzen 7 1700 @3.9GHz, 16GB HyperX Fury 3000MHz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline WPShadow

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1667
    • View Profile
    • http://lostrevenant.blogspot.com
Re: falsche Winkel
« Reply #11 on: 2012-Aug-10 »
Hey,

du solltest am Besten wissen, daß ich nicht sonderlich gut bin... in... Mathe... tja... *hust*

Hab heute in Mathe auch vermutlich auch die Klausur versemmelt, also... Tja... Was soll ich sagen...  :giveup:

AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5107
  • O Rly?
    • View Profile
Re: falsche Winkel
« Reply #12 on: 2012-Aug-10 »
Macht doch nix :)
Bin in Mathe mit SIN und COS und co auch net so wirklich gut !
I <3 DGArray's :D

PC:
AMD Ryzen 7 1700 @3.9GHz, 16GB HyperX Fury 3000MHz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline backslider

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 892
    • View Profile
Re: falsche Winkel
« Reply #13 on: 2012-Aug-10 »
Aber nur in Mathe!

in GLBasic bist du mit SIN und COS gut.  :good:

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5107
  • O Rly?
    • View Profile
Re: falsche Winkel
« Reply #14 on: 2012-Aug-10 »
Ich mach halt solange bis es geht :D
I <3 DGArray's :D

PC:
AMD Ryzen 7 1700 @3.9GHz, 16GB HyperX Fury 3000MHz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard