summaryrefslogtreecommitdiff
path: root/demos/2d/lookat/lookat.gd
blob: 742c5b067102f6a1eac8c1a2772f19e2ec9ed908 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

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