bcp de characters

This commit is contained in:
E250429F
2026-09-03 09:43:13 +02:00
parent a061aff066
commit 025a866eef
1175 changed files with 85837 additions and 286 deletions
+117
View File
@@ -0,0 +1,117 @@
extends CanvasLayer
@onready var game_area: ColorRect = $BackGround/GameArea
@onready var target_rect: ColorRect = $BackGround/GameArea/TargetRect
@onready var feather: ColorRect = $BackGround/GameArea/Feather
@onready var player: CharacterBody3D = $".."
@onready var frog: CharacterBody3D = $"../../frog"
var cpt_col : int = -1
var is_playing : bool = false
var is_flashing : bool = false
var default_target_color : Color = Color(1.0, 1.0, 1.0, 0.6)
var tween : Tween
func _ready():
hide()
target_rect.color = default_target_color
func _input(event):
if Input.is_action_just_pressed("ui_accept") and player.can_play:
toggle_minigame()
# Contrôle de la plume avec la souris (uniquement sur Y)
if is_playing and event is InputEventMouseMotion:
var local_mouse_y = game_area.get_local_mouse_position().y
feather.position.y = clamp(local_mouse_y, 0, game_area.size.y - feather.size.y)
func toggle_minigame():
is_playing = !is_playing
if is_playing:
show()
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
player.camera_pov.make_current()
target_rect.position.y = game_area.size.y - target_rect.size.y
await get_tree().create_timer( 2 ).timeout
if is_playing:
player.can_play = false
start_pattern()
else:
player.can_play = true
player.camera.make_current()
hide()
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
if tween:
tween.kill()
if cpt_col == -1:
return
cpt_col/= 2
if cpt_col < 2:
frog.size = 1
elif cpt_col == 2 or cpt_col == 3:
if frog.size > 1.5:
frog.size = 1.5
else:
if frog.size > 2:
frog.size = 2
func start_pattern():
if tween:
tween.kill()
if is_playing:
tween = create_tween()
else:
return
var bottom_y = game_area.size.y - target_rect.size.y
var top_y = 0.0
tween.tween_property(target_rect, "position:y", top_y, 5)
tween.tween_interval(4.0)
tween.tween_property(target_rect, "position:y", bottom_y, 5)
tween.tween_interval(4.0)
await tween.finished
if cpt_col == -1:
cpt_col = 0
toggle_minigame()
func _process(delta):
if not is_playing:
return
# On vérifie si le centre de la plume est dans le rectangle
var feather_center = feather.position.y + (feather.size.y / 2.0)
var rect_top = target_rect.position.y
var rect_bottom = target_rect.position.y + target_rect.size.y
var is_inside = feather_center >= rect_top and feather_center <= rect_bottom
# Si elle est dehors et qu'on n'est pas déjà en train de clignoter en rouge
if not is_inside and not is_flashing and !player.can_play : # can_play juste pour le début
trigger_error()
func trigger_error():
is_flashing = true
cpt_col += 1
# Passage en rouge
target_rect.color = Color.RED
# On attend 0.5 secondes
await get_tree().create_timer(0.5).timeout
# Retour à la normale
target_rect.color = default_target_color
is_flashing = false