+1 vote

I tried it first, but it not work for me:

var mouse_dir = (get_global_mouse_position() - $Tank_gun.global_position).normalized()
var corrent_dir = Vector2(-1, 0).rotated($Tank_gun.global_rotation)

$Tank_gun.global_rotation = corrent_dir.linear_interpolate(-mouse_dir, 50 * delta).angle()

Use in _physics_process

in Engine by (13 points)
edited by

1 Answer

+4 votes
var m = get_global_mouse_position()
var aim_speed = deg2rad(1)
if $Tank_gun.get_angle_to(m) > 0:
    $Tank_gun.rotation += aim_speed
else:
    $Tank_gun.rotation -= aim_speed
by (923 points)
Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to webmaster@godotengine.org with your username.