asteroids/Scripts/laser.gd

24 lines
578 B
GDScript

extends Area2D
var speed = 750
var half_size: Vector2 # half of sprite dimensions (used for wrapping)
func _ready() -> void:
connect("area_entered", _on_body_entered)
half_size = Utils.get_half_size(self)
func _physics_process(delta):
position += -transform.y * speed * delta
var rect = get_viewport_rect()
if position.x < -half_size.x or position.x > rect.size.x + half_size.x or position.y < -half_size.y or position.y > rect.size.y + half_size.y:
queue_free()
func _on_body_entered(body):
if body.is_in_group("enemies"):
body.hit()
queue_free()