Initial files
This commit is contained in:
40
scripts/asteroid.gd
Normal file
40
scripts/asteroid.gd
Normal file
@@ -0,0 +1,40 @@
|
||||
extends KinematicBody2D
|
||||
|
||||
var explosion = preload("res://scenes/explosion.tscn")
|
||||
var velocity = Vector2()
|
||||
export var speed_min = 10
|
||||
export var speed_max = 50
|
||||
|
||||
func _ready():
|
||||
randomize()
|
||||
var rand_x = rand_range(0, get_viewport_rect().size.width)
|
||||
set_global_pos(Vector2(rand_x, rand_range(-5, -60))) #random offset for easy "random timing"
|
||||
|
||||
rand_x = rand_range(0, get_viewport_rect().size.width)
|
||||
var target = Vector2(rand_x, get_viewport_rect().size.height)
|
||||
|
||||
set_rot(get_global_pos().angle_to_point(target)+deg2rad(180))
|
||||
velocity = Vector2(0, rand_range(speed_min, speed_max))
|
||||
get_node("Sprite").set_rotd(rand_range(0,360))
|
||||
set_process(true)
|
||||
|
||||
func _process(delta):
|
||||
move(velocity.rotated(get_rot())*delta)
|
||||
check_bounds()
|
||||
|
||||
func check_bounds():
|
||||
if get_pos().y > get_viewport_rect().size.y - 5:
|
||||
print("Asteroid out of bounds")
|
||||
game_manager.get_node_from_root("Node/Base").damage(10)
|
||||
destroy()
|
||||
|
||||
func destroy():
|
||||
get_node("CollisionArea").queue_free()
|
||||
game_manager.remove_asteroid()
|
||||
var new_explosion = explosion.instance()
|
||||
new_explosion.set_pos(get_pos())
|
||||
game_manager.get_node_from_root("Node").add_child(new_explosion)
|
||||
queue_free()
|
||||
|
||||
func on_rocket_hit():
|
||||
destroy()
|
||||
Reference in New Issue
Block a user