class_name BalleElectrique extends Balle const BalleElectriqueScene: PackedScene = preload("res://composants/objets/balle/balle_elec/balle_electrique.tscn") const duree_clignotement_max: float = 0.05 # sec var _duree_clignotement: float = 0.0 var surchargee: bool = true # vrai si l'electricite deborde @onready var image: Sprite2D = $Image func _process(delta: float) -> void: _clignoter(delta) func _clignoter(delta: float) -> void: if not surchargee: return _duree_clignotement += delta if _duree_clignotement < duree_clignotement_max: # trop tot pour clignoter return # pas de 0, donc au moins un axe est flip var axes_a_inverser: int = randi_range(1, 3) var inversion_horizontale: bool = axes_a_inverser % 2 == 1 var inversion_verticale: bool = axes_a_inverser / 2 == 1 if inversion_verticale: image.flip_v = not image.flip_v if inversion_horizontale: image.flip_h = not image.flip_h _duree_clignotement = 0.0 ## Transforme une balle quelconque en balle electrique static func transformer(balle: Balle) -> void: var balle_elec: BalleElectrique = BalleElectriqueScene.instantiate() balle.add_sibling.call_deferred(balle_elec) # Appeler plus tard sinon Godot pas content balle_elec.recopier(balle) balle.queue_free()