added breakable objects

This commit is contained in:
derek
2024-07-16 16:47:12 -05:00
parent afe19d8848
commit 262abd7d95
25 changed files with 2149 additions and 17 deletions

13
scripts/breakable.gd Normal file
View 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

View 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

View File

@@ -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()

View File

@@ -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)