|
@@ -22,7 +22,7 @@ func _physics_process(delta: float) -> void:
|
|
|
if impact != null:
|
|
|
_rebondir(impact)
|
|
|
var obstacle: Object = impact.get_collider()
|
|
|
- if obstacle is Raquette:
|
|
|
+ if obstacle is Raquette and en_train_de_monter():
|
|
|
_orienter_tir(obstacle)
|
|
|
_accelerer()
|
|
|
elif obstacle is Brique:
|
|
@@ -41,6 +41,10 @@ func detruire() -> void:
|
|
|
queue_free()
|
|
|
|
|
|
|
|
|
+func en_train_de_monter() -> bool:
|
|
|
+ return _mouvement.y < 0.0
|
|
|
+
|
|
|
+
|
|
|
func _rebondir(impact: KinematicCollision2D) -> void:
|
|
|
_mouvement = _mouvement.bounce(impact.get_normal())
|
|
|
|
|
@@ -48,10 +52,9 @@ func _rebondir(impact: KinematicCollision2D) -> void:
|
|
|
func _orienter_tir(raquette: Raquette) -> void:
|
|
|
var difference = global_position.x - raquette.position.x
|
|
|
_mouvement = Vector2.UP.rotated(difference * ratio_diff_angle) * _mouvement.length()
|
|
|
-
|
|
|
- # empeche la balle de traverser la raquette
|
|
|
- if _mouvement.y > 0:
|
|
|
- _mouvement.y = -ascension_min
|
|
|
+
|
|
|
+ # empeche la balle de monter trop lentement
|
|
|
+ _mouvement.y = min(_mouvement.y, -ascension_min)
|
|
|
|
|
|
|
|
|
func _accelerer() -> void:
|