From 3936ed882c6f39c74a3b124a95d5adc5e61ab3c5 Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Tue, 12 May 2015 08:17:09 -0300 Subject: -Added lookat/get_angle_to functions in 2D, and a demo, closes #1843 -Added get_viewport().get_mouse_pos() to replace Input.get_mouse_pos(), closes #1838 --- demos/2d/lookat/arrow.png | Bin 0 -> 2528 bytes demos/2d/lookat/engine.cfg | 4 ++++ demos/2d/lookat/lookat.gd | 43 +++++++++++++++++++++++++++++++++++++++++++ demos/2d/lookat/lookat.scn | Bin 0 -> 1622 bytes 4 files changed, 47 insertions(+) create mode 100644 demos/2d/lookat/arrow.png create mode 100644 demos/2d/lookat/engine.cfg create mode 100644 demos/2d/lookat/lookat.gd create mode 100644 demos/2d/lookat/lookat.scn (limited to 'demos/2d') diff --git a/demos/2d/lookat/arrow.png b/demos/2d/lookat/arrow.png new file mode 100644 index 0000000000..25db91e8d1 Binary files /dev/null and b/demos/2d/lookat/arrow.png differ diff --git a/demos/2d/lookat/engine.cfg b/demos/2d/lookat/engine.cfg new file mode 100644 index 0000000000..56917a39ec --- /dev/null +++ b/demos/2d/lookat/engine.cfg @@ -0,0 +1,4 @@ +[application] + +name="Look At Pointer" +main_scene="res://lookat.scn" diff --git a/demos/2d/lookat/lookat.gd b/demos/2d/lookat/lookat.gd new file mode 100644 index 0000000000..742c5b0671 --- /dev/null +++ b/demos/2d/lookat/lookat.gd @@ -0,0 +1,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 + + diff --git a/demos/2d/lookat/lookat.scn b/demos/2d/lookat/lookat.scn new file mode 100644 index 0000000000..880070b4c7 Binary files /dev/null and b/demos/2d/lookat/lookat.scn differ -- cgit v1.2.3