|
@@ -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()
|
|
|
|