feat: added drone sound effect to enemies

main
Sara 2024-12-12 20:46:21 +01:00
parent 52cd856992
commit 3b94a7e0f3
7 changed files with 44 additions and 4 deletions

BIN
audio/drone.aup3 (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -11,7 +11,7 @@ bus/1/name = &"Artillery"
bus/1/solo = false bus/1/solo = false
bus/1/mute = false bus/1/mute = false
bus/1/bypass_fx = false bus/1/bypass_fx = false
bus/1/volume_db = 0.185026 bus/1/volume_db = -14.6228
bus/1/send = &"Master" bus/1/send = &"Master"
bus/1/effect/0/effect = SubResource("AudioEffectLowPassFilter_i7nkl") bus/1/effect/0/effect = SubResource("AudioEffectLowPassFilter_i7nkl")
bus/1/effect/0/enabled = true bus/1/effect/0/enabled = true

View File

@ -1,6 +1,7 @@
[gd_scene load_steps=3 format=3 uid="uid://0fykl1mw3c12"] [gd_scene load_steps=4 format=3 uid="uid://0fykl1mw3c12"]
[ext_resource type="PackedScene" uid="uid://bnr6lab7heo8e" path="res://objects/character_model_base.tscn" id="1_i7aop"] [ext_resource type="PackedScene" uid="uid://bnr6lab7heo8e" path="res://objects/character_model_base.tscn" id="1_i7aop"]
[ext_resource type="AudioStream" uid="uid://b5evvhyrhybkf" path="res://sounds/drone.ogg" id="2_8cpm2"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_3tduq"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_3tduq"]
radius = 0.370388 radius = 0.370388
@ -102,4 +103,14 @@ shape = SubResource("CapsuleShape3D_3tduq")
[node name="NavigationAgent3D" type="NavigationAgent3D" parent="."] [node name="NavigationAgent3D" type="NavigationAgent3D" parent="."]
unique_name_in_owner = true unique_name_in_owner = true
[node name="DroneSound" type="AudioStreamPlayer3D" parent="."]
unique_name_in_owner = true
stream = ExtResource("2_8cpm2")
attenuation_model = 2
volume_db = 1.0
unit_size = 27.02
autoplay = true
max_distance = 13.36
panning_strength = 0.17
[editable path="CharacterModel"] [editable path="CharacterModel"]

BIN
godot/sounds/drone.ogg (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://b5evvhyrhybkf"
path="res://.godot/imported/drone.ogg-04eb7ed83dcda003c57d2f86862900d2.oggvorbisstr"
[deps]
source_file="res://sounds/drone.ogg"
dest_files=["res://.godot/imported/drone.ogg-04eb7ed83dcda003c57d2f86862900d2.oggvorbisstr"]
[params]
loop=true
loop_offset=1.0
bpm=0.0
beat_count=0
bar_beats=4

View File

@ -20,6 +20,7 @@ void Enemy::_ready() {
timer->start(this->update_interval); timer->start(this->update_interval);
timer->connect("timeout", callable_mp(this, &Enemy::update)); timer->connect("timeout", callable_mp(this, &Enemy::update));
this->target_rotation = this->get_rotation().y; this->target_rotation = this->get_rotation().y;
this->drone_sound = this->get_node<gd::AudioStreamPlayer3D>("%DroneSound");
} }
void Enemy::_process(double delta) { void Enemy::_process(double delta) {
@ -88,7 +89,7 @@ void Enemy::_physics_process(double delta [[maybe_unused]]) {
basis.get_column(0) * motion.x + basis.get_column(0) * motion.x +
basis.get_column(1) * motion.y + basis.get_column(1) * motion.y +
basis.get_column(2) * motion.z basis.get_column(2) * motion.z
});\ });
this->move_and_slide(); this->move_and_slide();
} }
@ -98,6 +99,7 @@ void Enemy::damage() {
this->set_collision_layer(0x0); this->set_collision_layer(0x0);
this->set_process(false); this->set_process(false);
this->set_physics_process(false); this->set_physics_process(false);
this->drone_sound->stop();
} }
void Enemy::notice_player(Player *player) { void Enemy::notice_player(Player *player) {

View File

@ -5,6 +5,7 @@
#include "player.hpp" #include "player.hpp"
#include "player_anim_tree.hpp" #include "player_anim_tree.hpp"
#include "utils/godot_macros.hpp" #include "utils/godot_macros.hpp"
#include <godot_cpp/classes/audio_stream_player3d.hpp>
#include <godot_cpp/classes/character_body3d.hpp> #include <godot_cpp/classes/character_body3d.hpp>
#include <godot_cpp/classes/navigation_agent3d.hpp> #include <godot_cpp/classes/navigation_agent3d.hpp>
namespace gd = godot; namespace gd = godot;
@ -32,7 +33,7 @@ public:
float get_update_interval() const; float get_update_interval() const;
private: private:
int const SHOTS_BEFORE_HIT{0}; int const SHOTS_BEFORE_HIT{0};
float const TURN_SPEED{1.5f}; float const TURN_SPEED{3.f};
float const HIT_ANGLE{.05f}; float const HIT_ANGLE{.05f};
float const MISS_ANGLE{.2f}; float const MISS_ANGLE{.2f};
@ -46,6 +47,7 @@ private:
Player *player{nullptr}; Player *player{nullptr};
gd::NavigationAgent3D *agent{nullptr}; gd::NavigationAgent3D *agent{nullptr};
PlayerAnimTree *anim_tree{nullptr}; PlayerAnimTree *anim_tree{nullptr};
gd::AudioStreamPlayer3D *drone_sound{nullptr};
}; };
#endif // !ENEMY_HPP #endif // !ENEMY_HPP