lookat.gd 683 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. extends Sprite
  2. # member variables here, example:
  3. # var a=2
  4. # var b="textvar"
  5. const MODE_DIRECT=0
  6. const MODE_CONSTANT=1
  7. const MODE_SMOOTH=2
  8. const ROTATION_SPEED = 1
  9. const SMOOTH_SPEED = 2.0
  10. export(int,"Direct","Constant","Smooth") var mode=MODE_DIRECT
  11. func _process(delta):
  12. var mpos = get_viewport().get_mouse_pos()
  13. if (mode==MODE_DIRECT):
  14. look_at(mpos)
  15. elif (mode==MODE_CONSTANT):
  16. var ang = get_angle_to(mpos)
  17. var s = sign(ang)
  18. ang=abs(ang)
  19. rotate( min(ang,ROTATION_SPEED*delta)*s )
  20. elif (mode==MODE_SMOOTH):
  21. var ang = get_angle_to(mpos)
  22. rotate( ang*delta*SMOOTH_SPEED )
  23. func _ready():
  24. # Initialization here
  25. set_process(true)
  26. pass