added breakable objects
This commit is contained in:
13
scripts/breakable.gd
Normal file
13
scripts/breakable.gd
Normal file
@@ -0,0 +1,13 @@
|
||||
extends RigidBody3D
|
||||
|
||||
@export var broken_object : Resource
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
pass
|
||||
16
scripts/broken_object_spawn.gd
Normal file
16
scripts/broken_object_spawn.gd
Normal file
@@ -0,0 +1,16 @@
|
||||
extends Node3D
|
||||
|
||||
@export var sound : Node
|
||||
@export var pitch_scale_amt = .5
|
||||
|
||||
var rng = RandomNumberGenerator.new()
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
if sound != null:
|
||||
sound.pitch_scale = 1 + rng.randf_range(-pitch_scale_amt,pitch_scale_amt)
|
||||
sound.play()
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
pass
|
||||
@@ -58,6 +58,13 @@ func _process(delta):
|
||||
if ray.get_collider().is_in_group("scene_rigidbody"):
|
||||
ray.get_collider().linear_velocity += transform.basis * Vector3(0,0,-1 * 5)
|
||||
|
||||
if ray.get_collider().is_in_group("breakable"):
|
||||
var spawn_broken = ray.get_collider().broken_object.instantiate()
|
||||
spawn_broken.position = ray.get_collider().global_position
|
||||
spawn_broken.transform.basis = ray.get_collider().global_transform.basis
|
||||
get_tree().get_root().add_child(spawn_broken)
|
||||
ray.get_collider().queue_free()
|
||||
|
||||
if ray.get_collider().is_in_group("enemy"):
|
||||
print("enemy hit")
|
||||
hit_indicator.play()
|
||||
|
||||
@@ -188,6 +188,10 @@ func _physics_process(delta):
|
||||
gun.anim_player.play("swap_out")
|
||||
level_control.gun_spawn(level_control.current_gun_index - 1)
|
||||
|
||||
#quit game and eventually go to menu
|
||||
if Input.is_action_pressed("escape"):
|
||||
get_tree().quit()
|
||||
|
||||
move_and_slide()
|
||||
weapon_tilt(input_dir.x, delta)
|
||||
weapon_sway(delta)
|
||||
|
||||
Reference in New Issue
Block a user