extends CharacterBody2D const SPEED = 300.0 @export var boat: Node2D const TILE_SIZE = 128 var relative_position_on_boat = Vector2(0, 0) var is_on_boat = true var last_boat_rotation = 0.0 func _ready(): if boat: relative_position_on_boat = position - boat.position last_boat_rotation = boat.rotation func _physics_process(_delta): # On tourne le joueur vers la souris var mouse_position = get_global_mouse_position() look_at(mouse_position) if is_on_boat: if boat: # On calcule la difference de rotation du bateau depuis le dernier mouvement var delta_rotation = boat.rotation - last_boat_rotation # On adape la position du joueur en fonction de la nouvelle rota relative_position_on_boat = relative_position_on_boat.rotated(delta_rotation) position = boat.position + relative_position_on_boat # On autorise le joueur à se déplacer dans le bateau velocity.x = Input.get_axis("ui_left", "ui_right") * SPEED velocity.y = Input.get_axis("ui_up", "ui_down") * SPEED move_and_slide() # Mise à jour des paramètres pour le déplacement du joueur en fonction du bateau relative_position_on_boat = position - boat.position last_boat_rotation = boat.rotation else: # Quand on est pas sur le bateau, on se déplace librement (le lapin surtout) velocity.x = Input.get_axis("ui_left", "ui_right") * SPEED/2 velocity.y = Input.get_axis("ui_up", "ui_down") * SPEED/2 move_and_slide() func set_on_boat(on_boat: bool): #TODO is_on_boat = on_boat