This commit is contained in:
E250429F
2026-09-17 23:19:43 +02:00
parent 025a866eef
commit 3e857fa9f3
281 changed files with 38006 additions and 970 deletions
+38 -4
View File
@@ -1,13 +1,13 @@
extends CharacterBody3D
@export var player: Node3D
@export var follow_speed: float = 4.0
@export var follow_speed: float = 5.6
@export var right_offset: float = 2.5
@export var forward_offset: float = 1
@export var car_cinematic : bool = false
@onready var anim_player: AnimationPlayer = $frog/AnimationPlayer
var size : float = 0.5
var size : float = .7
@onready var arms: MeshInstance3D = $frog/Armature/Skeleton3D/arms
@onready var body: MeshInstance3D = $frog/Armature/Skeleton3D/body
@@ -17,10 +17,18 @@ var size : float = 0.5
@onready var legs: MeshInstance3D = $frog/Armature/Skeleton3D/legs
@onready var mesh = [ arms, body, eyes, feet, hands, legs ]
@onready var audio_player: AudioStreamPlayer3D = $AudioStreamPlayer3D
@onready var frog_launch_step = load("res://assets/audio/sound-effects/frog/frog_launch_step.mp3")
@onready var frog_quiet_step = load("res://assets/audio/sound-effects/frog/frog_quiet_step.mp3")
@onready var frog_loud_step = load("res://assets/audio/sound-effects/frog/frog_loud_step.wav")
@onready var audio_croak: AudioStreamPlayer3D = $AudioCroak
@onready var croak_timer: Timer = $CroakTimer
# Variables pour la gravité
var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
var can_scale : bool = false
func _ready() -> void:
if !car_cinematic:
scale = Vector3( size, size, size )
@@ -42,10 +50,18 @@ func _process(delta: float) -> void:
func _physics_process(delta):
if not player or car_cinematic:
return
if can_scale:
if player.is_client_game_launched:
size += 0.00025
else:
size += 0.00012
# Appliquer la gravité
if not is_on_floor():
velocity.y -= gravity * delta
var target_position = player.global_position + (player.global_transform.basis.x * right_offset) + (-player.global_transform.basis.z * forward_offset)
global_position.y = target_position.y
@@ -73,12 +89,13 @@ func _physics_process(delta):
var real_speed = Vector2(get_real_velocity().x, get_real_velocity().z).length()
# Si frog n'est pas bloquée par un mur
if real_speed > 0.1:
size += 0.0
if anim_player.current_animation != "walk":
anim_player.play("walk", 0.2)
_play_jump_sound()
else:
if anim_player.current_animation != "idle":
anim_player.play("idle", 0.2)
_play_land_sound()
move_and_slide()
@@ -87,3 +104,20 @@ func scale_frog():
var final_scale = Vector3(size, size, size)
tween.tween_property(self, "scale", final_scale, 2)
func _play_jump_sound() -> void:
audio_player.stream = frog_launch_step
audio_player.play()
func _play_land_sound() -> void:
if size < 2:
audio_player.stream = frog_quiet_step
else:
audio_player.stream = frog_loud_step
audio_player.play()
func _on_timer_timeout() -> void:
croak_timer.wait_time = randf_range(30, 45)
audio_croak.pitch_scale = randf_range( .9, 1.1 )
audio_croak.play()