fuzzyworld

godot-shooter / starfield-background / files / Bullet.gd

Branch starfield-background · default branch · all branches

Bullet.gd

610 B · history · blame

1extends Area2D
2
3const utils = preload("res://Utils.gd")
4export var lifetime_seconds = 2
5export var speed = 300
6
7func _ready() -> void:
8 $Timer.wait_time = lifetime_seconds
9 $Timer.start()
10 utils.log("timer", $Timer)
11
12func _physics_process(delta: float) -> void:
13 position += transform.y * speed * delta
14
15func on_expiration():
16 utils.log("killing bullet")
17 queue_free()
18
19func on_bullet_body_entered(body):
20 var tree = get_tree()
21 var players = tree.get_nodes_in_group("player")
22 var player = players[0]
23 if body.has_method("hurt") && body != player:
24 utils.log("removing bullet")
25 body.hurt()
26 queue_free()