Topic was automatically imported from the old Question2Answer platform.
Asked By
coolranchcarl1957
extends Sprite
var velocity = Vector2(1, 0)
var speed = 1000
var look_once = true
func _process(delta):
if look_once:
var mouse_pos = get_global_mouse_position()
look_at(mouse_pos)
look_once = false
global_position += velocity.rotated(rotation) * speed * delta
func _on_VisibilityNotifier2D_screen_exited():
queue_free()
Following tutorial, bullets currently spawn fine but I cannot figure out how to get them to deviate slightly by a few degrees when fired, instead of all going exactly where the mouse pointer is.
If you dont want them to go where the mouse is firing, then… where do you want them to deviate to?
If you want random deviation, it can be done by adding a small random angle to the bullet when you initialize its orientation:
if look_once:
var mouse_pos = get_global_mouse_position()
look_at(mouse_pos)
var deviation_angle = PI * 0.1
rotation += rand_range(-deviation_angle, deviation_angle)
look_once = false
An alternative is to apply randomness to the mouse position, however that would make bullets more “precise” the further away you aim, so you also have to modulate that randomness based on distance which is a bit more complicated.
Looking at your example video, I’m not sure if it’s what you currently have, or if it’s what you want?