Pārlūkot izejas kodu

:sparkles: added sound when base is hit

Felix Bytow 10 mēneši atpakaļ
vecāks
revīzija
d5d62e1d9e

BIN
assets/audio/explosionCrunch_000.ogg


+ 19 - 0
assets/audio/explosionCrunch_000.ogg.import

@@ -0,0 +1,19 @@
+[remap]
+
+importer="oggvorbisstr"
+type="AudioStreamOggVorbis"
+uid="uid://c8e6a4uxb6qql"
+path="res://.godot/imported/explosionCrunch_000.ogg-c9ff69c56ef904833ba5fe9eb13012b4.oggvorbisstr"
+
+[deps]
+
+source_file="res://assets/audio/explosionCrunch_000.ogg"
+dest_files=["res://.godot/imported/explosionCrunch_000.ogg-c9ff69c56ef904833ba5fe9eb13012b4.oggvorbisstr"]
+
+[params]
+
+loop=false
+loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4

+ 1 - 0
assets/scenes/health_bar.gd

@@ -1,4 +1,5 @@
 extends Node2D
+class_name HealthBar
 
 signal health_changed(new_value: int)
 

+ 14 - 9
screens/game.gd

@@ -1,8 +1,9 @@
 extends Node2D
 
-@onready var health_bar = $HealthBar
-@onready var transition = $Overlay/Transition
-@onready var spawn_timer = $Timer
+@onready var health_bar: HealthBar = $HealthBar
+@onready var transition: Transition = $Overlay/Transition
+@onready var spawn_timer: Timer = $Timer
+@onready var base_hit_sound: AudioStreamPlayer = $BaseHitSound
 
 @onready var main_menu: PackedScene = load("res://screens/main_menu.tscn")
 @onready var bot_scene: PackedScene = load("res://assets/scenes/bot.tscn")
@@ -35,12 +36,16 @@ func spawn_bot() -> void:
 func _on_timer_timeout() -> void:
 	spawn_bot()
 
+func base_hit() -> void:
+	base_hit_sound.play()
+	health_bar.health -= 1
+	if health_bar.health == 0:
+		spawn_timer.stop()
+		var foes = get_tree().get_nodes_in_group("foe")
+		for foe in foes:
+			foe.queue_free()
+
 func _on_base_area_entered(area: Area2D) -> void:
 	if area.is_in_group("foe") || area.is_in_group("foe_weapons"):
 		area.queue_free()
-		health_bar.health -= 1
-		if health_bar.health == 0:
-			spawn_timer.stop()
-			var foes = get_tree().get_nodes_in_group("foe")
-			for foe in foes:
-				foe.queue_free()
+		base_hit()

+ 5 - 1
screens/game.tscn

@@ -1,10 +1,11 @@
-[gd_scene load_steps=8 format=3 uid="uid://c483fkssc36s"]
+[gd_scene load_steps=9 format=3 uid="uid://c483fkssc36s"]
 
 [ext_resource type="Script" path="res://screens/game.gd" id="1_4dd0q"]
 [ext_resource type="Texture2D" uid="uid://djifkreeh0nb4" path="res://assets/textures/game_background.jpg" id="2_qk61j"]
 [ext_resource type="PackedScene" path="res://assets/scenes/health_bar.tscn" id="2_x77og"]
 [ext_resource type="Texture2D" uid="uid://r2ph4fobqo17" path="res://assets/textures/Light_Overlay.png" id="3_86s7d"]
 [ext_resource type="PackedScene" uid="uid://ce8cu4romympf" path="res://assets/scenes/transition.tscn" id="4_yc6k4"]
+[ext_resource type="AudioStream" uid="uid://c8e6a4uxb6qql" path="res://assets/audio/explosionCrunch_000.ogg" id="6_ufcvu"]
 
 [sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_yhw6y"]
 blend_mode = 1
@@ -56,5 +57,8 @@ position = Vector2(1222, 424)
 [node name="EnemySpawn_3" type="Marker2D" parent="." groups=["spawner"]]
 position = Vector2(641, 144)
 
+[node name="BaseHitSound" type="AudioStreamPlayer" parent="."]
+stream = ExtResource("6_ufcvu")
+
 [connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
 [connection signal="area_entered" from="Base" to="." method="_on_base_area_entered"]