diff --git a/game.tscn b/game.tscn index 42a347b..4b2e6f6 100644 --- a/game.tscn +++ b/game.tscn @@ -6,9 +6,11 @@ [node name="game" type="Node"] [node name="Node2D" parent="." instance=ExtResource("1_qv57y")] +light_mask = 1 +visibility_layer = 1 position = Vector2(1, 10) [node name="Princesse" parent="Node2D" instance=ExtResource("2_0ku48")] position = Vector2(-95, -14) scale = Vector2(0.6, 0.6) -collision_mask = 28 +collision_mask = 60 diff --git a/levels/level.tscn b/levels/level.tscn index 6133bec..59bc650 100644 --- a/levels/level.tscn +++ b/levels/level.tscn @@ -1022,7 +1022,6 @@ texture = ExtResource("2_0lafl") physics_layer_0/collision_layer = 16 physics_layer_0/collision_mask = 0 physics_layer_1/collision_layer = 32 -physics_layer_1/collision_mask = 0 sources/0 = SubResource("TileSetAtlasSource_oitv5") sources/1 = SubResource("TileSetAtlasSource_f5ev5") sources/2 = SubResource("TileSetAtlasSource_2v4nl") diff --git a/princesse.gd b/princesse.gd index 42b4335..7652269 100644 --- a/princesse.gd +++ b/princesse.gd @@ -51,6 +51,11 @@ var falling_step : int = -1 var pressing_wall = false + +const PLATFORM_LAYER = 1 << (5 - 1) # collision layer 5 +const PICS_BLOCK_LAYER = 1 << (6 - 1) # collision layer 6 +var layer_of_collision = null + func walk(direction:int) -> int: # Fait marcher le personnage. @@ -179,7 +184,16 @@ func _physics_process(delta: float) -> void: animation.scale.x *= -1 floor_stop_on_slope = not platform_detector.is_colliding() - move_and_slide() # Character is colliding + var collision = move_and_slide() + if collision: + var collider = get_last_slide_collision().get_collider() + + if collider is TileMap: + var tile_rid = get_last_slide_collision().get_collider_rid() + layer_of_collision = PhysicsServer2D.body_get_collision_layer(tile_rid) + if layer_of_collision == PICS_BLOCK_LAYER: + get_tree(). reload_current_scene() + var anim := get_new_animation(false) if anim != animation.animation: diff --git a/project.godot b/project.godot index 28162eb..a3884b2 100644 --- a/project.godot +++ b/project.godot @@ -48,6 +48,9 @@ jump={ [layer_names] 2d_render/layer_1="plateformes" +2d_physics/layer_5="plateformes" +2d_physics/layer_6="pics" +2d_physics/layer_7="fromages" [rendering]