44 lines
683 B
GDScript3
44 lines
683 B
GDScript3
|
|
||
|
extends Sprite
|
||
|
|
||
|
# member variables here, example:
|
||
|
# var a=2
|
||
|
# var b="textvar"
|
||
|
|
||
|
const MODE_DIRECT=0
|
||
|
const MODE_CONSTANT=1
|
||
|
const MODE_SMOOTH=2
|
||
|
|
||
|
const ROTATION_SPEED = 1
|
||
|
const SMOOTH_SPEED = 2.0
|
||
|
|
||
|
export(int,"Direct","Constant","Smooth") var mode=MODE_DIRECT
|
||
|
|
||
|
func _process(delta):
|
||
|
var mpos = get_viewport().get_mouse_pos()
|
||
|
|
||
|
if (mode==MODE_DIRECT):
|
||
|
|
||
|
look_at(mpos)
|
||
|
|
||
|
elif (mode==MODE_CONSTANT):
|
||
|
|
||
|
var ang = get_angle_to(mpos)
|
||
|
var s = sign(ang)
|
||
|
ang=abs(ang)
|
||
|
|
||
|
rotate( min(ang,ROTATION_SPEED*delta)*s )
|
||
|
|
||
|
elif (mode==MODE_SMOOTH):
|
||
|
|
||
|
var ang = get_angle_to(mpos)
|
||
|
|
||
|
rotate( ang*delta*SMOOTH_SPEED )
|
||
|
|
||
|
func _ready():
|
||
|
# Initialization here
|
||
|
set_process(true)
|
||
|
pass
|
||
|
|
||
|
|