extends Node2D @export var tile_scene: PackedScene = preload("res://scenes/tile.tscn") @export var barrier_scene: PackedScene = preload("res://scenes/barrier.tscn") var tiles = [] var tile_size = 128.0 var test_broken_tiles = true const boatSize = 5 const barrierOffset = 2 var speed = 100 var velocity = Vector2() func _ready(): spawn_boat_tiles() spawn_boat_barriers() func spawn_boat_tiles(): tiles.clear() for x in range(boatSize): var row = [] for y in range(boatSize): if test_broken_tiles && randf() < 0.7 || (x == floor(boatSize/2) && y == floor(boatSize/2)): # 70% de chance de spawn une tuile pour tester les bateaux incomplets var tile = tile_scene.instantiate() add_child(tile) #Positionner les tuiles pour que l'on spawne toujours au centre tile.position = Vector2( (x - ((boatSize - 1) * 0.5)) * tile_size, (y - ((boatSize - 1) * 0.5)) * tile_size ) var collision_shape = barrier_scene.instantiate() $Area2D.add_child(collision_shape) collision_shape.position = Vector2( (x - ((boatSize - 1) * 0.5)) * tile_size, (y - ((boatSize - 1) * 0.5)) * tile_size ) row.append(tile) else: row.append(null) # On garde la structure mais on marque la tuile manquante tiles.append(row) func spawn_boat_barriers(): var collider_range = range(tiles.size()) collider_range.append_array([-1, boatSize]) for x in collider_range: for y in collider_range: if not has_tile(x, y): var barrier = barrier_scene.instantiate() $StaticBody2D.add_child(barrier) barrier.position = Vector2( (x - ((boatSize - 1) * 0.5)) * tile_size, (y - ((boatSize - 1) * 0.5)) * tile_size ) func has_tile(x : int, y : int): if x >= 0 and y >= 0 and x < boatSize and y < boatSize: return tiles[x][y] != null else : return false func _physics_process(delta): #Just spinning rotation += delta/6 func _on_player_is_dead(): print("Est mort") func _on_area_2d_body_entered(body): pass # Replace with function body.