I know that atanfull(x,y) gets the angle.
What I want to do is have the sprite gradually rotate to face that direction.
One thing I am finding quite strange is that the sprite keeps pointing the opposite on the North/South angles. Eg: If I click north of my sprite it turns the degrees south and visa versa.
Can anybody shed some light on this. Heres the code I got so far.
SYNC ON: SYNC RATE 30
SET DISPLAY MODE 1024,768,32
MousePosX#=0
MousePosY#=0
DX# = 0
DY# = 0
DZ# = 0
Ang# = 0
Clicked# = 0
GOSUB _LOAD_MEDIA
GOSUB _LOAD_SPRITES
DO
`TEXT 100,10, "X: " + STR$(MOUSEX())
`TEXT 100,20, "Y: " + STR$(MOUSEY())
`TEXT 300,10, "Distance: " + STR$(Dist#)
`TEXT 300,20, "Angle: " + STR$(Ang#)
GOSUB _MOVE_SPRITE
SYNC
LOOP
_LOAD_MEDIA:
RETURN
_LOAD_SPRITES:
LOAD IMAGE "Scout.png",1
SET SPRITE 1,1,1
ROTATE SPRITE 1,90
OFFSET SPRITE 1,11,10
SPRITE 1,100,384,1
RETURN
_MOVE_SPRITE:
IF MOUSECLICK()=1 AND Clicked# = 0
Clicked# = 1
MousePosX# = MOUSEX()
MousePosY# = MOUSEY()
DX# = MousePosX# - SPRITE X(1)
DY# = MousePosY# - SPRITE Y(1)
Dist# = ABS(SQRT(ABS(DX#*DX#) + ABS(DY#*DY#) + ABS(DZ#*DZ#)))
Ang# = WRAPVALUE(atanfull(DX#,DY#))
ROTATE SPRITE 1,Ang#
ENDIF
IF Clicked# = 1
MOVE SPRITE 1,5
ENDIF
IF SPRITE X(1) > MousePosx#
Clicked# = 0
ENDIF
RETURN
The sprite moves no problem just need to sort out the angle thing now.
PC spec: AMD64 X2 @ 2Ghz, 1Gb DDR 400Ram, 1x 160Gb and 1x 300 gb HDD, 2x GForce FX7600GS 256Mb PCx in Sli mode, XP Home SP2