diff options
Diffstat (limited to 'demos/2d/space_shooter/shot.gd')
-rw-r--r-- | demos/2d/space_shooter/shot.gd | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/demos/2d/space_shooter/shot.gd b/demos/2d/space_shooter/shot.gd new file mode 100644 index 0000000000..936dde73d1 --- /dev/null +++ b/demos/2d/space_shooter/shot.gd @@ -0,0 +1,40 @@ + +extends Area2D + +# Member variables +const SPEED = 800 + +var hit = false + + +func _process(delta): + translate(Vector2(delta*SPEED, 0)) + + +func _ready(): + set_process(true) + + +func _hit_something(): + if (hit): + return + hit = true + set_process(false) + get_node("anim").play("splash") + + +func _on_visibility_exit_screen(): + queue_free() + + +func _on_shot_area_enter(area): + # Hit an enemy or asteroid + if (area.has_method("destroy")): + # Duck typing at it's best + area.destroy() + _hit_something() + + +func _on_shot_body_enter(body): + # Hit the tilemap + _hit_something() |