diff options
| author | Jan Tuomi <jan@jantuomi.fi> | 2025-11-21 16:37:45 +0200 |
|---|---|---|
| committer | Jan Tuomi <jan@jantuomi.fi> | 2025-11-21 16:37:45 +0200 |
| commit | 31d7be95a48f3d36f2daac950dbc7cdaabeb5b86 (patch) | |
| tree | 4481f2db453260cdad9273b70e5282cd51f9ec46 | |
| parent | 413d219eba1157284a6a90ecb9f736058158bb5f (diff) | |
Add full screen map and pause
| -rw-r--r-- | esc_listener.gd | 7 | ||||
| -rw-r--r-- | esc_listener.gd.uid | 1 | ||||
| -rw-r--r-- | map.gd | 15 | ||||
| -rw-r--r-- | map.tscn | 50 | ||||
| -rw-r--r-- | room_test1.tscn | 6 | ||||
| -rw-r--r-- | room_test2.tscn | 6 | ||||
| -rw-r--r-- | room_test3.tscn | 6 | ||||
| -rw-r--r-- | top.gd | 25 | ||||
| -rw-r--r-- | touch_screen_button.tscn | 2 |
9 files changed, 76 insertions, 42 deletions
diff --git a/esc_listener.gd b/esc_listener.gd deleted file mode 100644 index e0267d8..0000000 --- a/esc_listener.gd +++ /dev/null @@ -1,7 +0,0 @@ -extends Node - -@onready var top: Top = get_tree().root.get_node("Top") - -func _process(_delta: float) -> void: - if Input.is_action_just_pressed("menu"): - top.get_transition_manager().room_transition(null, "res://room_main_menu.tscn", null) diff --git a/esc_listener.gd.uid b/esc_listener.gd.uid deleted file mode 100644 index d34f269..0000000 --- a/esc_listener.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://rjab5emlyx6 @@ -1,11 +1,15 @@ class_name Map extends CanvasLayer +@onready var top: Top = get_tree().root.get_node("Top") var active_map_room: MapRoom @export var inactive_color: Color @export var active_color: Color +func _ready(): + hide_map() + func set_active_name(map_room_name: String): if active_map_room: active_map_room.color = inactive_color @@ -17,3 +21,14 @@ func set_active_name(map_room_name: String): if active_map_room: active_map_room.color = active_color + +func connect_close_map(callable: Callable): + $UnpauseButton.connect("pressed", callable) + +func show_map(): + visible = true + $UnpauseButton.mouse_filter = Control.MOUSE_FILTER_STOP + +func hide_map(): + visible = false + $UnpauseButton.mouse_filter = Control.MOUSE_FILTER_IGNORE @@ -1,25 +1,26 @@ -[gd_scene load_steps=3 format=3 uid="uid://cseqghymhiyqo"] +[gd_scene load_steps=4 format=3 uid="uid://cseqghymhiyqo"] [ext_resource type="Script" uid="uid://dh0b4xa4f8h1o" path="res://map.gd" id="1_wijl4"] [ext_resource type="PackedScene" uid="uid://clm2kocuhjqbb" path="res://map_room.tscn" id="2_e0an3"] +[ext_resource type="Texture2D" uid="uid://c1h4ev7ma1neg" path="res://assets/kenney_1-bit-input-prompts-pixel-16/Tiles (White)/tile_0200.png" id="3_e0an3"] [node name="Map" type="CanvasLayer"] +process_mode = 3 script = ExtResource("1_wijl4") inactive_color = Color(0.747755, 0.7671235, 0.89114594, 1) active_color = Color(0, 0.77254903, 0.7764706, 1) [node name="Bg" type="ColorRect" parent="."] -offset_left = 3.0 -offset_top = 2.0 -offset_right = 29.0 -offset_bottom = 23.0 -color = Color(0, 0, 0, 0.5019608) +offset_right = 192.0 +offset_bottom = 108.0 +mouse_filter = 2 +color = Color(0, 0.019607844, 0.039215688, 0.81960785) [node name="RoomTest1" parent="." instance=ExtResource("2_e0an3")] -offset_left = 7.0 -offset_top = 6.0 -offset_right = 15.0 -offset_bottom = 11.0 +offset_left = 84.0 +offset_top = 48.0 +offset_right = 92.0 +offset_bottom = 53.0 [node name="Line2D" type="Line2D" parent="RoomTest1"] position = Vector2(7.275, 2.5) @@ -32,13 +33,26 @@ points = PackedVector2Array(0.7251587, 0.15686035, 0.7249985, -2.5) width = 1.0 [node name="RoomTest3" parent="." instance=ExtResource("2_e0an3")] -offset_left = 7.0 -offset_top = 13.0 -offset_right = 15.0 -offset_bottom = 18.0 +offset_left = 84.0 +offset_top = 55.0 +offset_right = 92.0 +offset_bottom = 60.0 [node name="RoomTest2" parent="." instance=ExtResource("2_e0an3")] -offset_left = 17.0 -offset_top = 6.0 -offset_right = 25.0 -offset_bottom = 11.0 +offset_left = 94.0 +offset_top = 48.0 +offset_right = 102.0 +offset_bottom = 53.0 + +[node name="UnpauseButton" type="Button" parent="."] +offset_left = 188.0 +offset_top = 105.0 +offset_right = 212.0 +offset_bottom = 129.0 +rotation = 3.1415927 +mouse_default_cursor_shape = 2 +action_mode = 0 +icon = ExtResource("3_e0an3") +flat = true + +[connection signal="pressed" from="UnpauseButton" to="." method="_on_unpause_button_pressed"] diff --git a/room_test1.tscn b/room_test1.tscn index 979b442..9ce6e88 100644 --- a/room_test1.tscn +++ b/room_test1.tscn @@ -1,9 +1,8 @@ -[gd_scene load_steps=9 format=4 uid="uid://cfj21o6wsd3hv"] +[gd_scene load_steps=8 format=4 uid="uid://cfj21o6wsd3hv"] [ext_resource type="Texture2D" uid="uid://o0yy2jkyp0dy" path="res://assets/kenney_1-bit-platformer-pack/Tilemap/monochrome_tilemap_transparent_packed.png" id="1_ubxha"] [ext_resource type="PackedScene" uid="uid://coxnsharboouu" path="res://player.tscn" id="2_qglt1"] [ext_resource type="PackedScene" uid="uid://dfyvkc2qlcdac" path="res://game_camera.tscn" id="3_mrrx3"] -[ext_resource type="Script" uid="uid://rjab5emlyx6" path="res://esc_listener.gd" id="4_8b75i"] [ext_resource type="PackedScene" uid="uid://cciwccvljuuyq" path="res://touch_screen_ui.tscn" id="5_r17u5"] [ext_resource type="PackedScene" uid="uid://df0loiahar23o" path="res://door.tscn" id="6_lfjh7"] @@ -460,9 +459,6 @@ process_callback = 0 position_smoothing_speed = 3.0 offset_amt = Vector2(40, 14) -[node name="EscListener" type="Node" parent="."] -script = ExtResource("4_8b75i") - [node name="TouchScreenUI" parent="." instance=ExtResource("5_r17u5")] [node name="DoorMiddle" parent="." instance=ExtResource("6_lfjh7")] diff --git a/room_test2.tscn b/room_test2.tscn index 8192db1..4f5fba4 100644 --- a/room_test2.tscn +++ b/room_test2.tscn @@ -1,9 +1,8 @@ -[gd_scene load_steps=9 format=4 uid="uid://cm4xqhbvyndt1"] +[gd_scene load_steps=8 format=4 uid="uid://cm4xqhbvyndt1"] [ext_resource type="Texture2D" uid="uid://o0yy2jkyp0dy" path="res://assets/kenney_1-bit-platformer-pack/Tilemap/monochrome_tilemap_transparent_packed.png" id="1_otugw"] [ext_resource type="PackedScene" uid="uid://coxnsharboouu" path="res://player.tscn" id="2_0kik6"] [ext_resource type="PackedScene" uid="uid://dfyvkc2qlcdac" path="res://game_camera.tscn" id="3_vjuef"] -[ext_resource type="Script" uid="uid://rjab5emlyx6" path="res://esc_listener.gd" id="4_gyred"] [ext_resource type="PackedScene" uid="uid://cciwccvljuuyq" path="res://touch_screen_ui.tscn" id="5_a1hvs"] [ext_resource type="PackedScene" uid="uid://df0loiahar23o" path="res://door.tscn" id="6_0kik6"] @@ -460,9 +459,6 @@ process_callback = 0 position_smoothing_speed = 3.0 offset_amt = Vector2(40, 14) -[node name="EscListener" type="Node" parent="."] -script = ExtResource("4_gyred") - [node name="TouchScreenUI" parent="." instance=ExtResource("5_a1hvs")] [node name="DoorLeft" parent="." instance=ExtResource("6_0kik6")] diff --git a/room_test3.tscn b/room_test3.tscn index cf28cea..b047361 100644 --- a/room_test3.tscn +++ b/room_test3.tscn @@ -1,9 +1,8 @@ -[gd_scene load_steps=9 format=4 uid="uid://3o7g1rxy06sb"] +[gd_scene load_steps=8 format=4 uid="uid://3o7g1rxy06sb"] [ext_resource type="Texture2D" uid="uid://o0yy2jkyp0dy" path="res://assets/kenney_1-bit-platformer-pack/Tilemap/monochrome_tilemap_transparent_packed.png" id="1_mtemi"] [ext_resource type="PackedScene" uid="uid://coxnsharboouu" path="res://player.tscn" id="2_bml3v"] [ext_resource type="PackedScene" uid="uid://dfyvkc2qlcdac" path="res://game_camera.tscn" id="3_w1h0g"] -[ext_resource type="Script" uid="uid://rjab5emlyx6" path="res://esc_listener.gd" id="4_bplq6"] [ext_resource type="PackedScene" uid="uid://cciwccvljuuyq" path="res://touch_screen_ui.tscn" id="5_rlnij"] [ext_resource type="PackedScene" uid="uid://df0loiahar23o" path="res://door.tscn" id="6_i21us"] @@ -459,9 +458,6 @@ process_callback = 0 position_smoothing_speed = 3.0 offset_amt = Vector2(40, 14) -[node name="EscListener" type="Node" parent="."] -script = ExtResource("4_bplq6") - [node name="TouchScreenUI" parent="." instance=ExtResource("5_rlnij")] [node name="DoorUp" parent="." instance=ExtResource("6_i21us")] @@ -2,11 +2,16 @@ class_name Top extends Node2D @export var initial_room: PackedScene + +var active_room_name: String var save_state_path = "user://save_state.cfg" var save_state = ConfigFile.new() func _ready() -> void: + $Map.hide_map() + var room = initial_room.instantiate() + active_room_name = room.name room.name = "ActiveRoom" room.process_mode = Node.PROCESS_MODE_PAUSABLE add_child(room) @@ -18,6 +23,10 @@ func _ready() -> void: save_state.save(save_state_path) print(OS.get_data_dir()) +func _process(_delta: float): + if Input.is_action_just_pressed("menu"): + on_esc_pressed() + func save(): save_state.save("user://save_state.cfg") @@ -26,6 +35,7 @@ func replace_active_room(new_room: Node, on_changed: Callable): remove_child(current_room) current_room.queue_free() + active_room_name = new_room.name new_room.name = "ActiveRoom" new_room.connect("tree_entered", on_changed) new_room.process_mode = Node.PROCESS_MODE_PAUSABLE @@ -36,3 +46,18 @@ func get_map() -> Map: func get_transition_manager() -> TransitionManager: return $TransitionManager + +func on_esc_pressed(): + if $Map.visible: + close_pause_menu() + elif active_room_name != "MainMenu": + open_pause_menu() + +func open_pause_menu(): + get_tree().paused = true + $Map.show_map() + $Map.connect_close_map(close_pause_menu) + +func close_pause_menu(): + get_tree().paused = false + $Map.hide_map() diff --git a/touch_screen_button.tscn b/touch_screen_button.tscn index 5b65811..355d491 100644 --- a/touch_screen_button.tscn +++ b/touch_screen_button.tscn @@ -5,7 +5,7 @@ [sub_resource type="RectangleShape2D" id="RectangleShape2D_l8v81"] size = Vector2(40, 40) -[node name="TouchScreenButtonRight" type="TouchScreenButton"] +[node name="TouchScreenButton" type="TouchScreenButton"] shape = SubResource("RectangleShape2D_l8v81") passby_press = true visibility_mode = 1 |
