Browse Source

Accelere la balle a chaque touche de raquette

DricomDragon 11 months ago
parent
commit
96c975005b
1 changed files with 15 additions and 2 deletions
  1. 15 2
      godot/composants/objets/balle/balle.gd

+ 15 - 2
godot/composants/objets/balle/balle.gd

@@ -6,14 +6,17 @@ signal sortie_ecran
 
 const ratio_diff_angle: float = PI * 0.005 # radian / px
 const ascension_min: float = 10.0 # px / sec
+const vitesse_initiale: float = 100.0 # px / sec
+const acceleration_par_touche: float = 50.0 # px / sec / touche
 
-@export var mouvement_initial: Vector2 = Vector2(0.0, 600.0)
+@export var direction_initiale: Vector2 = Vector2.DOWN
 
 var _mouvement: Vector2
+var _vitesse: float = vitesse_initiale
 
 
 func _ready() -> void:
-	_mouvement = mouvement_initial
+	_mettre_en_mouvement(direction_initiale)
 
 
 func _physics_process(delta: float) -> void:
@@ -23,6 +26,7 @@ func _physics_process(delta: float) -> void:
 		var obstacle: Object = impact.get_collider()
 		if obstacle is Raquette:
 			_orienter_tir(obstacle)
+			_accelerer()
 		if obstacle.has_method("frapper"):
 			obstacle.frapper(1)
 
@@ -40,6 +44,15 @@ func _orienter_tir(raquette: Raquette) -> void:
 		_mouvement.y = -ascension_min
 
 
+func _accelerer() -> void:
+	_vitesse += acceleration_par_touche
+	_mettre_en_mouvement(_mouvement.normalized())
+
+
+func _mettre_en_mouvement(dir: Vector2) -> void:
+	_mouvement = dir * _vitesse
+
+
 func _auto_detruire() -> void:
 	queue_free()