From 48d9d0e737104aa6c0445aaf9503fb106b580351 Mon Sep 17 00:00:00 2001 From: cakipaul Date: Wed, 8 Jan 2025 15:59:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=B9=A6=E6=9E=B6=E5=B0=8F?= =?UTF-8?q?=E6=B8=B8=E6=88=8F=E7=8E=A9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scene/little_game/书架.gd | 95 ++++- scene/little_game/书架.tscn | 775 ++++++++++++++++++++++++++++++------ 2 files changed, 737 insertions(+), 133 deletions(-) diff --git a/scene/little_game/书架.gd b/scene/little_game/书架.gd index 49c260da..0375257c 100644 --- a/scene/little_game/书架.gd +++ b/scene/little_game/书架.gd @@ -1,14 +1,15 @@ +@tool extends Control const NON_SELECTED = [-1, -1] -# 3 layers, original order is the correct answer -@export var current_answer := [[0, 1, 2, 3, 4], [0, 1, 2, 3], [0, 1, 2, 3]] + +@export var shuffle_times := 20 @onready var sfx_select = $SfxSelect as Sfx @onready var sfx_interchange = $SfxInterchange as Sfx +var current_answer := [] var book_width_by_row := [] - var suffling := false # [row, col] var selected_book := NON_SELECTED: @@ -26,10 +27,27 @@ var selected_book := NON_SELECTED: func _ready() -> void: + # init answer first + _init_answer_and_connect_signals() _measure_width_by_row() - _connect_signals() # shuffle at the end - _shuffle_books() + if Engine.is_editor_hint(): + for row in range(3): + _relocate_books(row) + else: + _shuffle_books() + + +func _init_answer_and_connect_signals() -> void: + for row in range(3): + var r_size = get_node("./Shelf/Layer" + str(row)).get_child_count() + # current_answer append a r_size arr + var arr = [] + for id in range(r_size): + arr.append(id) + var book = _get_book_by_id(row, id) + book.get_node("BookButton").pressed.connect(_on_book_pressed.bind(row, id)) + current_answer.append(arr) func _measure_width_by_row() -> void: @@ -48,10 +66,11 @@ func _measure_width_by_row() -> void: func _shuffle_books() -> void: selected_book = NON_SELECTED suffling = true + rand_from_seed(Time.get_ticks_usec()) for row in range(3): # shuffle each row 20 times var r_size = current_answer[row].size() - for _i in range(20): + for _i in range(shuffle_times): var col_1 = randi() % r_size var col_2 = randi() % r_size selected_book = [row, col_1] @@ -61,14 +80,6 @@ func _shuffle_books() -> void: suffling = false -func _connect_signals() -> void: - for row in range(3): - var r_size = current_answer[row].size() - for id in range(r_size): - var book = _get_book_by_id(row, id) - book.get_node("BookButton").pressed.connect(_on_book_pressed.bind(row, id)) - - func _on_book_pressed(row: int, id: int) -> void: var col = current_answer[row].find(id) if selected_book == NON_SELECTED: @@ -90,12 +101,15 @@ func _get_book_by_id(row: int, id: int) -> Node2D: # var layer = get_node("./Shelf/Layer" + str(row)) # return layer.get_child(col) +var mute_toggle = false + func _toggle_book(selected: bool, row: int, col: int) -> void: var id = current_answer[row][col] var book = _get_book_by_id(row, id) var book_tween = create_tween() - sfx_select.play() + if not mute_toggle: + sfx_select.play() if selected: book_tween.parallel().tween_property(book, "position:y", -10.0, 0.2) else: @@ -112,7 +126,9 @@ func _interchange_book(row: int, col: int, relocate := true) -> void: current_answer[row][col] = current_answer[row][col2] current_answer[row][col2] = temp # reset selected_book + mute_toggle = true selected_book = NON_SELECTED + mute_toggle = false # relocate after reset selected_book if relocate: _relocate_books(row) @@ -133,17 +149,56 @@ func _relocate_books(row: int) -> void: func _check_answer() -> void: - for row in range(3): - var r_size = current_answer[row].size() - for col in range(r_size): - if current_answer[row][col] != col: + # 第一行需要顺序排列 + var row1 = current_answer[0] + for col in range(row1.size()): + if row1[col] != col: + return + # 第二行正序或者倒序都可以 + var row2 = current_answer[1] + var size2 = row2.size() + if row2[0] == 0: + # 正序 + for col in range(1, size2): + if row2[col] != col: return + else: + # 倒序 + for col in range(size2): + if row2[col] != size2 - 1 - col: + return + # 最后一行按色块排列;0-6 蓝色(7个)在一起,7-11 红色(5个)在一起,12-17 黄色(6个)在一起 + var row3 = current_answer[2] + # 0: blue, 1: red, 2: yellow + var visited = [7, 5, 6] + var visiting_init = true + var visiting = -1 + for col in range(row3.size()): + var color = _get_color(row3[col]) + if visiting_init: + visiting = color + visiting_init = false + if color != visiting: + return + visited[color] -= 1 + if visited[color] == 0: + visiting_init = true # success _success() +# 0: blue, 1: red, 2: yellow +func _get_color(index: int) -> int: + # 0-6 蓝色(7个)在一起,7-11 红色(5个)在一起,12-17 黄色(6个)在一起 + if index < 7: + return 0 + elif index < 12: + return 1 + else: + return 2 + + func _success() -> void: print("Success!") - $Success.visible = true #TODO pass diff --git a/scene/little_game/书架.tscn b/scene/little_game/书架.tscn index 8f7d26aa..b5a996ae 100644 --- a/scene/little_game/书架.tscn +++ b/scene/little_game/书架.tscn @@ -1,54 +1,197 @@ -[gd_scene load_steps=17 format=3 uid="uid://fwfr0b2sylwx"] +[gd_scene load_steps=54 format=3 uid="uid://fwfr0b2sylwx"] [ext_resource type="Script" path="res://scene/little_game/书架.gd" id="1_8af23"] -[ext_resource type="Texture2D" uid="uid://csrb0kuf5qx80" path="res://asset/art/little_game/书架/书架与书.png" id="1_bap6w"] [ext_resource type="AudioStream" uid="uid://bxfm22t1rj2cq" path="res://asset/audio/sfx/ui/收起纸条.mp3" id="2_glfpo"] [ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/ux/sfx.tscn" id="3_03tyv"] [ext_resource type="AudioStream" uid="uid://bpdot5dxm6vwi" path="res://asset/audio/sfx/ui/挂画查看.mp3" id="3_elhhm"] - -[sub_resource type="AtlasTexture" id="AtlasTexture_goijy"] -atlas = ExtResource("1_bap6w") -region = Rect2(1, 14, 417, 224) +[ext_resource type="Texture2D" uid="uid://sl60ixmks0pi" path="res://asset/art/little_game/书架/书架框.png" id="5_i131t"] +[ext_resource type="Texture2D" uid="uid://1fpafer5flqw" path="res://asset/art/little_game/书架/合并.png" id="6_pxxx5"] [sub_resource type="AtlasTexture" id="AtlasTexture_c3g4t"] -atlas = ExtResource("1_bap6w") -region = Rect2(12, 254, 15, 61) +atlas = ExtResource("6_pxxx5") +region = Rect2(22, 484, 15, 104) [sub_resource type="AtlasTexture" id="AtlasTexture_pmg84"] -atlas = ExtResource("1_bap6w") -region = Rect2(34, 261, 13, 54) +atlas = ExtResource("6_pxxx5") +region = Rect2(57, 512, 14, 76) [sub_resource type="AtlasTexture" id="AtlasTexture_5xs8h"] -atlas = ExtResource("1_bap6w") -region = Rect2(58, 264, 13, 49) +atlas = ExtResource("6_pxxx5") +region = Rect2(89, 512, 14, 76) [sub_resource type="AtlasTexture" id="AtlasTexture_4cxbt"] -atlas = ExtResource("1_bap6w") -region = Rect2(80, 272, 10, 41) +atlas = ExtResource("6_pxxx5") +region = Rect2(126, 495, 14, 93) [sub_resource type="AtlasTexture" id="AtlasTexture_x1voy"] -atlas = ExtResource("1_bap6w") -region = Rect2(95, 277, 9, 35) +atlas = ExtResource("6_pxxx5") +region = Rect2(173, 507, 15, 81) -[sub_resource type="AtlasTexture" id="AtlasTexture_4i6n2"] -atlas = ExtResource("1_bap6w") -region = Rect2(12, 254, 15, 61) +[sub_resource type="AtlasTexture" id="AtlasTexture_s637y"] +atlas = ExtResource("6_pxxx5") +region = Rect2(225, 506, 28, 82) -[sub_resource type="AtlasTexture" id="AtlasTexture_3jfnd"] -atlas = ExtResource("1_bap6w") -region = Rect2(34, 261, 13, 54) +[sub_resource type="AtlasTexture" id="AtlasTexture_2rk7g"] +atlas = ExtResource("6_pxxx5") +region = Rect2(279, 495, 14, 93) + +[sub_resource type="AtlasTexture" id="AtlasTexture_uo0qb"] +atlas = ExtResource("6_pxxx5") +region = Rect2(320, 489, 14, 99) + +[sub_resource type="AtlasTexture" id="AtlasTexture_v6h51"] +atlas = ExtResource("6_pxxx5") +region = Rect2(487, 489, 14, 99) + +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_dg6aw"] +load_path = "res://.godot/imported/合并.png-ea1ae3da49b64e2d990320d50cc99cb7.ctex" + +[sub_resource type="AtlasTexture" id="AtlasTexture_fno8t"] +atlas = SubResource("CompressedTexture2D_dg6aw") +region = Rect2(443, 486, 14, 102) + +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_86iw8"] +load_path = "res://.godot/imported/合并.png-ea1ae3da49b64e2d990320d50cc99cb7.ctex" + +[sub_resource type="AtlasTexture" id="AtlasTexture_sqqma"] +atlas = SubResource("CompressedTexture2D_86iw8") +region = Rect2(531, 493, 15, 95) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2v8gr"] +atlas = SubResource("CompressedTexture2D_86iw8") +region = Rect2(579, 495, 19, 93) + +[sub_resource type="AtlasTexture" id="AtlasTexture_g33pn"] +atlas = SubResource("CompressedTexture2D_86iw8") +region = Rect2(629, 495, 14, 93) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7bg4e"] +atlas = SubResource("CompressedTexture2D_86iw8") +region = Rect2(671, 519, 14, 69) + +[sub_resource type="AtlasTexture" id="AtlasTexture_yyofn"] +atlas = SubResource("CompressedTexture2D_86iw8") +region = Rect2(712, 502, 14, 85) + +[sub_resource type="AtlasTexture" id="AtlasTexture_il3nv"] +atlas = SubResource("CompressedTexture2D_86iw8") +region = Rect2(755, 505, 16, 82) [sub_resource type="AtlasTexture" id="AtlasTexture_b3xvs"] -atlas = ExtResource("1_bap6w") -region = Rect2(12, 254, 15, 61) +atlas = ExtResource("6_pxxx5") +region = Rect2(21, 649, 18, 62) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7ejmc"] +atlas = ExtResource("6_pxxx5") +region = Rect2(58, 646, 12, 65) [sub_resource type="AtlasTexture" id="AtlasTexture_pv5xt"] -atlas = ExtResource("1_bap6w") -region = Rect2(80, 272, 10, 41) +atlas = ExtResource("6_pxxx5") +region = Rect2(86, 643, 11, 68) [sub_resource type="AtlasTexture" id="AtlasTexture_0m1py"] -atlas = ExtResource("1_bap6w") -region = Rect2(112, 279, 9, 32) +atlas = ExtResource("6_pxxx5") +region = Rect2(112, 639, 15, 72) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ewy65"] +atlas = ExtResource("6_pxxx5") +region = Rect2(146, 635, 17, 76) + +[sub_resource type="AtlasTexture" id="AtlasTexture_p1i0i"] +atlas = ExtResource("6_pxxx5") +region = Rect2(180, 628, 16, 83) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qjlqs"] +atlas = ExtResource("6_pxxx5") +region = Rect2(219, 625, 9, 86) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bef8d"] +atlas = ExtResource("6_pxxx5") +region = Rect2(247, 620, 9, 91) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tmibm"] +atlas = ExtResource("6_pxxx5") +region = Rect2(274, 616, 24, 95) + +[sub_resource type="AtlasTexture" id="AtlasTexture_niqsg"] +atlas = ExtResource("6_pxxx5") +region = Rect2(317, 612, 25, 99) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lqh8e"] +atlas = ExtResource("6_pxxx5") +region = Rect2(361, 609, 11, 102) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4i6n2"] +atlas = ExtResource("6_pxxx5") +region = Rect2(414, 624, 13, 87) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3jfnd"] +atlas = ExtResource("6_pxxx5") +region = Rect2(445, 628, 15, 83) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5j1oq"] +atlas = ExtResource("6_pxxx5") +region = Rect2(479, 613, 12, 98) + +[sub_resource type="AtlasTexture" id="AtlasTexture_e5eo5"] +atlas = ExtResource("6_pxxx5") +region = Rect2(512, 621, 13, 90) + +[sub_resource type="AtlasTexture" id="AtlasTexture_sungh"] +atlas = ExtResource("6_pxxx5") +region = Rect2(544, 621, 13, 90) + +[sub_resource type="AtlasTexture" id="AtlasTexture_yqrs8"] +atlas = ExtResource("6_pxxx5") +region = Rect2(574, 621, 13, 90) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jrkcq"] +atlas = ExtResource("6_pxxx5") +region = Rect2(610, 624, 13, 87) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2g3qi"] +atlas = ExtResource("6_pxxx5") +region = Rect2(646, 628, 15, 83) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tf04m"] +atlas = ExtResource("6_pxxx5") +region = Rect2(683, 613, 13, 98) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wsiwo"] +atlas = ExtResource("6_pxxx5") +region = Rect2(723, 621, 13, 90) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qbqho"] +atlas = ExtResource("6_pxxx5") +region = Rect2(767, 621, 13, 90) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ik73b"] +atlas = ExtResource("6_pxxx5") +region = Rect2(811, 621, 13, 90) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rwsmd"] +atlas = ExtResource("6_pxxx5") +region = Rect2(858, 624, 13, 87) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2tddc"] +atlas = ExtResource("6_pxxx5") +region = Rect2(895, 628, 14, 83) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mdq4x"] +atlas = ExtResource("6_pxxx5") +region = Rect2(944, 616, 13, 95) + +[sub_resource type="AtlasTexture" id="AtlasTexture_iwv1b"] +atlas = ExtResource("6_pxxx5") +region = Rect2(988, 621, 12, 90) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lhfli"] +atlas = ExtResource("6_pxxx5") +region = Rect2(1030, 621, 13, 90) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6p2po"] +atlas = ExtResource("6_pxxx5") +region = Rect2(1077, 621, 13, 90) [node name="书架" type="Control"] layout_mode = 3 @@ -59,6 +202,7 @@ grow_horizontal = 2 grow_vertical = 2 mouse_filter = 2 script = ExtResource("1_8af23") +shuffle_times = 1 [node name="SfxInterchange" parent="." instance=ExtResource("3_03tyv")] stream = ExtResource("3_elhhm") @@ -66,32 +210,20 @@ file = "挂画查看.mp3" [node name="SfxSelect" parent="." instance=ExtResource("3_03tyv")] stream = ExtResource("2_glfpo") -file = "收起纸条.mp3" - -[node name="BG" type="ColorRect" parent="."] -layout_mode = 1 -anchors_preset = 14 -anchor_top = 0.5 -anchor_right = 1.0 -anchor_bottom = 0.5 -offset_top = -120.0 -offset_bottom = 120.0 -grow_horizontal = 2 -grow_vertical = 2 -mouse_filter = 2 -color = Color(0.0404907, 0.185259, 0.00063979, 1) +file = "物品查看.mp3" [node name="Shelf" type="Sprite2D" parent="."] position = Vector2(283, 160) -texture = SubResource("AtlasTexture_goijy") +texture = ExtResource("5_i131t") [node name="Layer0" type="Control" parent="Shelf"] layout_mode = 3 anchors_preset = 0 -offset_left = -125.0 -offset_top = -9.0 -offset_right = -125.0 -offset_bottom = -9.0 +offset_left = -126.0 +offset_top = -10.0 +offset_right = -126.0 +offset_bottom = -10.0 +scale = Vector2(0.9, 0.9) [node name="Book0" type="Node2D" parent="Shelf/Layer0"] @@ -100,74 +232,229 @@ clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -49.0 -offset_right = 13.0 +offset_top = -104.0 +offset_right = 15.0 grow_vertical = 0 texture_normal = SubResource("AtlasTexture_c3g4t") -metadata/_edit_use_anchors_ = true [node name="Book1" type="Node2D" parent="Shelf/Layer0"] -position = Vector2(50.5455, 0.818183) +position = Vector2(16, 0) [node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book1"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -49.0 -offset_right = 13.0 +offset_top = -76.0 +offset_right = 14.0 grow_vertical = 0 texture_normal = SubResource("AtlasTexture_pmg84") -metadata/_edit_use_anchors_ = true [node name="Book2" type="Node2D" parent="Shelf/Layer0"] -position = Vector2(98.2728, 0.818183) +position = Vector2(31, 0) [node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book2"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -49.0 -offset_right = 13.0 +offset_top = -76.0 +offset_right = 14.0 grow_vertical = 0 texture_normal = SubResource("AtlasTexture_5xs8h") -metadata/_edit_use_anchors_ = true [node name="Book3" type="Node2D" parent="Shelf/Layer0"] -position = Vector2(98.2728, 0.818183) +position = Vector2(46, 0) [node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book3"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -41.0 -offset_right = 10.0 +offset_top = -93.0 +offset_right = 14.0 grow_vertical = 0 texture_normal = SubResource("AtlasTexture_4cxbt") -metadata/_edit_use_anchors_ = true [node name="Book4" type="Node2D" parent="Shelf/Layer0"] -position = Vector2(98.2728, 0.818183) +position = Vector2(61, 0) [node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book4"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -35.0 -offset_right = 9.0 +offset_top = -81.0 +offset_right = 15.0 grow_vertical = 0 texture_normal = SubResource("AtlasTexture_x1voy") +[node name="Book5" type="Node2D" parent="Shelf/Layer0"] +position = Vector2(77, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book5"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -82.0 +offset_right = 28.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_s637y") + +[node name="Book6" type="Node2D" parent="Shelf/Layer0"] +position = Vector2(106, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book6"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -93.0 +offset_right = 14.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_2rk7g") + +[node name="Book7" type="Node2D" parent="Shelf/Layer0"] +position = Vector2(121, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book7"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -99.0 +offset_right = 14.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_uo0qb") + +[node name="Book8" type="Node2D" parent="Shelf/Layer0"] +position = Vector2(136, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book8"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -99.0 +offset_right = 14.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_v6h51") + +[node name="Book9" type="Node2D" parent="Shelf/Layer0"] +position = Vector2(151, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book9"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -102.0 +offset_right = 14.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_fno8t") + +[node name="Book10" type="Node2D" parent="Shelf/Layer0"] +position = Vector2(166, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book10"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -99.0 +offset_right = 14.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_v6h51") + +[node name="Book11" type="Node2D" parent="Shelf/Layer0"] +position = Vector2(181, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book11"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -95.0 +offset_right = 15.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_sqqma") + +[node name="Book12" type="Node2D" parent="Shelf/Layer0"] +position = Vector2(197, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book12"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -93.0 +offset_right = 19.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_2v8gr") + +[node name="Book13" type="Node2D" parent="Shelf/Layer0"] +position = Vector2(217, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book13"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -93.0 +offset_right = 14.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_g33pn") + +[node name="Book14" type="Node2D" parent="Shelf/Layer0"] +position = Vector2(232, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book14"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -69.0 +offset_right = 14.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_7bg4e") + +[node name="Book15" type="Node2D" parent="Shelf/Layer0"] +position = Vector2(247, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book15"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -85.0 +offset_right = 14.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_yyofn") + +[node name="Book16" type="Node2D" parent="Shelf/Layer0"] +position = Vector2(262, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer0/Book16"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_left = -0.888879 +offset_top = -82.2222 +offset_right = 15.1111 +offset_bottom = -0.222221 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_il3nv") + [node name="Layer1" type="Control" parent="Shelf"] layout_mode = 3 anchors_preset = 0 -offset_left = -167.0 -offset_top = 97.0 -offset_right = -167.0 -offset_bottom = 97.0 +offset_left = -226.0 +offset_top = 112.0 +offset_right = -226.0 +offset_bottom = 112.0 +scale = Vector2(0.9, 0.9) [node name="Book0" type="Node2D" parent="Shelf/Layer1"] @@ -176,57 +463,147 @@ clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -49.0 -offset_right = 13.0 +offset_top = -62.0 +offset_right = 18.0 grow_vertical = 0 -texture_normal = SubResource("AtlasTexture_4i6n2") +texture_normal = SubResource("AtlasTexture_b3xvs") [node name="Book1" type="Node2D" parent="Shelf/Layer1"] -position = Vector2(50.5455, 0.818183) +position = Vector2(19, 0) [node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book1"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -49.0 -offset_right = 13.0 +offset_top = -65.0 +offset_right = 12.0 grow_vertical = 0 -texture_normal = SubResource("AtlasTexture_3jfnd") +texture_normal = SubResource("AtlasTexture_7ejmc") [node name="Book2" type="Node2D" parent="Shelf/Layer1"] -position = Vector2(98.2728, 0.818183) +position = Vector2(32, 0) [node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book2"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -49.0 -offset_right = 13.0 +offset_top = -68.0 +offset_right = 11.0 grow_vertical = 0 -texture_normal = SubResource("AtlasTexture_5xs8h") +texture_normal = SubResource("AtlasTexture_pv5xt") [node name="Book3" type="Node2D" parent="Shelf/Layer1"] -position = Vector2(98.2728, 0.818183) +position = Vector2(44, 0) [node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book3"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -41.0 -offset_right = 10.0 +offset_top = -72.0 +offset_right = 15.0 grow_vertical = 0 -texture_normal = SubResource("AtlasTexture_4cxbt") +texture_normal = SubResource("AtlasTexture_0m1py") + +[node name="Book4" type="Node2D" parent="Shelf/Layer1"] +position = Vector2(60, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book4"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -76.0 +offset_right = 17.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_ewy65") + +[node name="Book5" type="Node2D" parent="Shelf/Layer1"] +position = Vector2(78, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book5"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -83.0 +offset_right = 16.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_p1i0i") + +[node name="Book6" type="Node2D" parent="Shelf/Layer1"] +position = Vector2(95, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book6"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -86.0 +offset_right = 9.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_qjlqs") + +[node name="Book7" type="Node2D" parent="Shelf/Layer1"] +position = Vector2(105, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book7"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -91.0 +offset_right = 9.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_bef8d") + +[node name="Book8" type="Node2D" parent="Shelf/Layer1"] +position = Vector2(115, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book8"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -95.0 +offset_right = 24.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_tmibm") + +[node name="Book9" type="Node2D" parent="Shelf/Layer1"] +position = Vector2(140, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book9"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -99.0 +offset_right = 25.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_niqsg") + +[node name="Book10" type="Node2D" parent="Shelf/Layer1"] +position = Vector2(166, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer1/Book10"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -102.0 +offset_right = 11.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_lqh8e") [node name="Layer2" type="Control" parent="Shelf"] layout_mode = 3 anchors_preset = 0 -offset_left = 28.0 -offset_top = 97.0 -offset_right = 28.0 -offset_bottom = 97.0 +offset_top = 112.0 +offset_bottom = 112.0 +scale = Vector2(0.9, 0.9) [node name="Book0" type="Node2D" parent="Shelf/Layer2"] @@ -235,49 +612,231 @@ clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -61.0 -offset_right = 15.0 +offset_top = -87.0 +offset_right = 13.0 grow_vertical = 0 -texture_normal = SubResource("AtlasTexture_b3xvs") +texture_normal = SubResource("AtlasTexture_4i6n2") [node name="Book1" type="Node2D" parent="Shelf/Layer2"] -position = Vector2(50.5455, 0.818183) +position = Vector2(14, 0) [node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book1"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -49.0 -offset_right = 13.0 +offset_top = -83.0 +offset_right = 15.0 grow_vertical = 0 -texture_normal = SubResource("AtlasTexture_5xs8h") +texture_normal = SubResource("AtlasTexture_3jfnd") [node name="Book2" type="Node2D" parent="Shelf/Layer2"] -position = Vector2(98.2728, 0.818183) +position = Vector2(30, 0) [node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book2"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -41.0 -offset_right = 10.0 +offset_top = -98.0 +offset_right = 12.0 grow_vertical = 0 -texture_normal = SubResource("AtlasTexture_pv5xt") +texture_normal = SubResource("AtlasTexture_5j1oq") [node name="Book3" type="Node2D" parent="Shelf/Layer2"] -position = Vector2(98.2728, 0.818183) +position = Vector2(43, 0) [node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book3"] clip_contents = true anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -32.0 -offset_right = 9.0 +offset_top = -90.0 +offset_right = 13.0 grow_vertical = 0 -texture_normal = SubResource("AtlasTexture_0m1py") +texture_normal = SubResource("AtlasTexture_e5eo5") + +[node name="Book4" type="Node2D" parent="Shelf/Layer2"] +position = Vector2(57, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book4"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -90.0 +offset_right = 13.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_sungh") + +[node name="Book5" type="Node2D" parent="Shelf/Layer2"] +position = Vector2(71, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book5"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -90.0 +offset_right = 13.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_yqrs8") + +[node name="Book6" type="Node2D" parent="Shelf/Layer2"] +position = Vector2(85, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book6"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -87.0 +offset_right = 13.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_jrkcq") + +[node name="Book7" type="Node2D" parent="Shelf/Layer2"] +position = Vector2(99, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book7"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -83.0 +offset_right = 15.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_2g3qi") + +[node name="Book8" type="Node2D" parent="Shelf/Layer2"] +position = Vector2(115, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book8"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -98.0 +offset_right = 13.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_tf04m") + +[node name="Book9" type="Node2D" parent="Shelf/Layer2"] +position = Vector2(129, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book9"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -90.0 +offset_right = 13.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_wsiwo") + +[node name="Book10" type="Node2D" parent="Shelf/Layer2"] +position = Vector2(143, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book10"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -90.0 +offset_right = 13.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_qbqho") + +[node name="Book11" type="Node2D" parent="Shelf/Layer2"] +position = Vector2(157, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book11"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -90.0 +offset_right = 13.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_ik73b") + +[node name="Book12" type="Node2D" parent="Shelf/Layer2"] +position = Vector2(171, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book12"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -87.0 +offset_right = 13.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_rwsmd") + +[node name="Book13" type="Node2D" parent="Shelf/Layer2"] +position = Vector2(185, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book13"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -83.0 +offset_right = 14.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_2tddc") + +[node name="Book14" type="Node2D" parent="Shelf/Layer2"] +position = Vector2(200, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book14"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -95.0 +offset_right = 13.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_mdq4x") + +[node name="Book15" type="Node2D" parent="Shelf/Layer2"] +position = Vector2(214, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book15"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -90.0 +offset_right = 12.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_iwv1b") + +[node name="Book16" type="Node2D" parent="Shelf/Layer2"] +position = Vector2(227, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book16"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -90.0 +offset_right = 13.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_lhfli") + +[node name="Book17" type="Node2D" parent="Shelf/Layer2"] +position = Vector2(241, 0) + +[node name="BookButton" type="TextureButton" parent="Shelf/Layer2/Book17"] +clip_contents = true +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -90.0 +offset_right = 13.0 +grow_vertical = 0 +texture_normal = SubResource("AtlasTexture_6p2po") [node name="ColorRectTop" type="ColorRect" parent="."] unique_name_in_owner = true @@ -311,13 +870,3 @@ grow_horizontal = 2 grow_vertical = 0 mouse_filter = 2 color = Color(0, 0, 0, 1) - -[node name="Success" type="Label" parent="."] -visible = false -layout_mode = 0 -offset_left = 230.0 -offset_top = 142.0 -offset_right = 310.0 -offset_bottom = 191.0 -theme_override_font_sizes/font_size = 40 -text = "成功"