From f89a8a85ab371b138b593aa10c491087ed6350f7 Mon Sep 17 00:00:00 2001 From: TsubakiLoL <2789646812@qq.com> Date: Sat, 21 Sep 2024 17:51:05 +0800 Subject: [PATCH] =?UTF-8?q?9.21=E4=B8=8B=E5=8D=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- autoload/global/script/global.gd | 3 +- class/map/map_class.gd | 15 +--- json/map.json | 2 +- project.godot | 10 +++ scene/map.gd | 84 +++++++++++++++++-- scene/map.tscn | 95 +++++++++++++-------- scene/mapA03A.tmp | 136 +++++++++++++++++++++++++++++++ scene/map_scroll.gd | 17 ++++ test/map/map_01.png | Bin 0 -> 13841 bytes test/map/map_01.png.import | 34 ++++++++ test/map/map_02.png | Bin 0 -> 17568 bytes test/map/map_02.png.import | 34 ++++++++ test/map/map_03.png | Bin 0 -> 22179 bytes test/map/map_03.png.import | 34 ++++++++ test/scene/map_example.tscn | 39 --------- test/scene/map_example0.tscn | 16 ++++ test/scene/map_example1.tscn | 14 ++++ test/scene/map_example2.tscn | 14 ++++ 18 files changed, 452 insertions(+), 95 deletions(-) create mode 100644 scene/mapA03A.tmp create mode 100644 scene/map_scroll.gd create mode 100644 test/map/map_01.png create mode 100644 test/map/map_01.png.import create mode 100644 test/map/map_02.png create mode 100644 test/map/map_02.png.import create mode 100644 test/map/map_03.png create mode 100644 test/map/map_03.png.import delete mode 100644 test/scene/map_example.tscn create mode 100644 test/scene/map_example0.tscn create mode 100644 test/scene/map_example1.tscn create mode 100644 test/scene/map_example2.tscn diff --git a/autoload/global/script/global.gd b/autoload/global/script/global.gd index 43c52f9..c169fc2 100644 --- a/autoload/global/script/global.gd +++ b/autoload/global/script/global.gd @@ -33,7 +33,8 @@ var now_game_data:Dictionary={ "difficulty":0, "gold":9999, "health":100, - "spirit":999 + "spirit":999, + "map":"map_01" } var now_game_flow:GameFlow func get_now_character_data(): diff --git a/class/map/map_class.gd b/class/map/map_class.gd index 414735d..773f704 100644 --- a/class/map/map_class.gd +++ b/class/map/map_class.gd @@ -1,23 +1,14 @@ -extends ScrollContainer +extends TextureRect -class_name Map +class_name MapIndex signal click(scene_id:String) -func _gui_input(event: InputEvent) -> void: - if event is InputEventMouseMotion and Input.is_action_pressed("mouse_left"): - var relative:Vector2=event.relative - scroll_horizontal-=relative.x - scroll_vertical-=relative.y - - - - pass + func _on_linyi_pressed() -> void: - click.emit("") pass # Replace with function body. diff --git a/json/map.json b/json/map.json index 7c0250c..dfc095e 100644 --- a/json/map.json +++ b/json/map.json @@ -2,6 +2,6 @@ "map_01": { "name":"测试地图01", - "tscn":"" + "index":[] } } diff --git a/project.godot b/project.godot index 379ebd6..5f149dc 100644 --- a/project.godot +++ b/project.godot @@ -38,3 +38,13 @@ mouse_left={ "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(272, 11),"global_position":Vector2(281, 57),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null) ] } +mouse_up={ +"deadzone": 0.5, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":8,"position":Vector2(286, 11),"global_position":Vector2(295, 57),"factor":1.0,"button_index":4,"canceled":false,"pressed":true,"double_click":false,"script":null) +] +} +mouse_down={ +"deadzone": 0.5, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":16,"position":Vector2(300, 12),"global_position":Vector2(309, 58),"factor":1.0,"button_index":5,"canceled":false,"pressed":true,"double_click":false,"script":null) +] +} diff --git a/scene/map.gd b/scene/map.gd index 845c3fb..06bdf9f 100644 --- a/scene/map.gd +++ b/scene/map.gd @@ -1,17 +1,89 @@ extends Control -@onready var date: Label = $HBoxContainer/TextureRect/TextureRect/date -@onready var time: Label = $HBoxContainer/TextureRect/TextureRect/time -@onready var weather: Label = $HBoxContainer/TextureRect/TextureRect/weather -@onready var pos: Label = $HBoxContainer/TextureRect/TextureRect/pos -@onready var map_add_pos: Panel = $HBoxContainer/map_add_pos - +@onready var date: Label = $TextureRect/date +@onready var time: Label = $TextureRect/time +@onready var weather: Label = $TextureRect/weather +@onready var pos: Label = $TextureRect/pos +@onready var h_box_container: HBoxContainer = $ScrollContainer/HBoxContainer +@onready var scroll_container: ScrollContainer = $ScrollContainer +@onready var map_0=$ScrollContainer/HBoxContainer/TabContainer/map_example +@onready var map_1=$ScrollContainer/HBoxContainer/TabContainer/TextureRect +@onready var map_2=$ScrollContainer/HBoxContainer/TabContainer/TextureRect2 +@onready var map_now:=$ScrollContainer/HBoxContainer/TabContainer/map_example +var scale_rag:float=1: + set(val): + if val>1.3 and val<1.5 and (scale_rag<1.3 or scale_rag>1.5): + var t=get_tree().create_tween() + t.tween_property(map_now,"modulate:a",0,0.1) + t.tween_callback(map_now.hide) + var t2=get_tree().create_tween() + map_1.modulate.a=0 + map_1.show() + map_now=map_1 + t2.tween_property(map_1,"modulate:a",1,0.1) + elif val<=1.3 and scale_rag>1.3: + var t=get_tree().create_tween() + t.tween_property(map_now,"modulate:a",0,0.1) + t.tween_callback(map_now.hide) + var t2=get_tree().create_tween() + map_0.modulate.a=0 + map_0.show() + map_now=map_0 + t2.tween_property(map_0,"modulate:a",1,0.1) + elif val>1.5 and scale_rag<1.5: + var t=get_tree().create_tween() + t.tween_property(map_now,"modulate:a",0,0.1) + t.tween_callback(map_now.hide) + var t2=get_tree().create_tween() + map_2.modulate.a=0 + map_2.show() + map_now=map_2 + t2.tween_property(map_2,"modulate:a",1,0.1) + resize_map(scale_rag,val,get_global_mouse_position(),init_size) + scale_rag=val + pass +@export var scale_limit:Vector2=Vector2(1,2) +func resize_map(before_rag:float,rag:float,mouse_pos:Vector2,init:Vector2): + var l=rag/before_rag + var now_pos=Vector2(scroll_container.scroll_horizontal,scroll_container.scroll_vertical)+mouse_pos + now_pos*=l + var result=now_pos-mouse_pos + h_box_container.custom_minimum_size=init*rag + scroll_container.set_deferred("scroll_horizontal", result.x) + scroll_container.set_deferred("scroll_vertical", result.y) + + + pass +var init_size:Vector2=Vector2(1920,1080) # Called when the node enters the scene tree for the first time. func _ready() -> void: + h_box_container.custom_minimum_size=init_size pass # Replace with function body. # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: pass + +var keep_tween:Tween +func _gui_input(event: InputEvent) -> void: + if event is InputEventMouseMotion and Input.is_action_pressed("mouse_left"): + var relative:Vector2=event.relative + scroll_container.scroll_horizontal-=relative.x + scroll_container.scroll_vertical-=relative.y + if Input.is_action_pressed("mouse_up"): + if keep_tween==null: + keep_tween=create_tween() + else: + keep_tween.stop() + keep_tween=create_tween() + keep_tween.tween_property(self,"scale_rag",clamp(scale_rag+0.2,scale_limit.x,scale_limit.y),0.1) + if Input.is_action_just_pressed("mouse_down"): + if keep_tween==null: + keep_tween=create_tween() + else: + keep_tween.stop() + keep_tween=create_tween() + keep_tween.tween_property(self,"scale_rag",clamp(scale_rag-0.2,scale_limit.x,scale_limit.y),0.1) + diff --git a/scene/map.tscn b/scene/map.tscn index 315b994..a0a7829 100644 --- a/scene/map.tscn +++ b/scene/map.tscn @@ -1,9 +1,13 @@ -[gd_scene load_steps=5 format=3 uid="uid://ccsaeb8hm5lsu"] +[gd_scene load_steps=9 format=3 uid="uid://ccsaeb8hm5lsu"] [ext_resource type="Texture2D" uid="uid://bx2layh7wm6ft" path="res://res/ui/ui_021_map/tuceng309.png" id="1_e45qx"] [ext_resource type="Script" path="res://scene/map.gd" id="1_ifxi0"] +[ext_resource type="Script" path="res://scene/map_scroll.gd" id="2_lmnx3"] [ext_resource type="Texture2D" uid="uid://bc4vkd7u4s4sb" path="res://res/ui/ui_021_map/tuceng308.png" id="2_slael"] [ext_resource type="Texture2D" uid="uid://bo84mljdw3my8" path="res://res/ui/ui_021_map/tuceng315.png" id="3_4y8t4"] +[ext_resource type="PackedScene" uid="uid://dtbfpnr54ifod" path="res://test/scene/map_example0.tscn" id="5_jn1dj"] +[ext_resource type="PackedScene" uid="uid://cscvsnrim8xwk" path="res://test/scene/map_example1.tscn" id="6_a88yc"] +[ext_resource type="PackedScene" uid="uid://db3m13gci7afs" path="res://test/scene/map_example2.tscn" id="7_bvfra"] [node name="map" type="Control"] layout_mode = 3 @@ -14,33 +18,72 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_ifxi0") -[node name="HBoxContainer" type="HBoxContainer" parent="."] +[node name="ScrollContainer" type="ScrollContainer" parent="."] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +mouse_filter = 2 +horizontal_scroll_mode = 3 +vertical_scroll_mode = 3 +script = ExtResource("2_lmnx3") -[node name="TextureRect" type="TextureRect" parent="HBoxContainer"] +[node name="HBoxContainer" type="HBoxContainer" parent="ScrollContainer"] +custom_minimum_size = Vector2(1920, 1080) +layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 0 +theme_override_constants/separation = 0 + +[node name="TextureRect" type="TextureRect" parent="ScrollContainer/HBoxContainer"] layout_mode = 2 size_flags_horizontal = 0 texture = ExtResource("1_e45qx") expand_mode = 3 -[node name="TextureRect" type="TextureRect" parent="HBoxContainer/TextureRect"] +[node name="TextureRect2" type="TextureRect" parent="ScrollContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 0 +texture = ExtResource("2_slael") +expand_mode = 3 + +[node name="TabContainer" type="MarginContainer" parent="ScrollContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="map_example" parent="ScrollContainer/HBoxContainer/TabContainer" instance=ExtResource("5_jn1dj")] +layout_mode = 2 + +[node name="TextureRect" parent="ScrollContainer/HBoxContainer/TabContainer" instance=ExtResource("6_a88yc")] +visible = false +layout_mode = 2 + +[node name="TextureRect2" parent="ScrollContainer/HBoxContainer/TabContainer" instance=ExtResource("7_bvfra")] +visible = false +layout_mode = 2 + +[node name="TextureRect4" type="TextureRect" parent="ScrollContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 8 +texture = ExtResource("2_slael") +expand_mode = 3 + +[node name="TextureRect3" type="TextureRect" parent="ScrollContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 0 +texture = ExtResource("1_e45qx") +expand_mode = 3 + +[node name="TextureRect" type="TextureRect" parent="."] z_index = 1 layout_mode = 1 -anchors_preset = 1 -anchor_left = 1.0 -anchor_right = 1.0 -offset_left = 3.94254 -offset_right = 515.943 +offset_right = 512.0 offset_bottom = 142.0 -grow_horizontal = 0 texture = ExtResource("3_4y8t4") -[node name="date" type="Label" parent="HBoxContainer/TextureRect/TextureRect"] +[node name="date" type="Label" parent="TextureRect"] layout_mode = 0 anchor_left = 0.347656 anchor_right = 1.0 @@ -52,7 +95,7 @@ text = "1999/12/12" vertical_alignment = 1 metadata/_edit_use_anchors_ = true -[node name="time" type="Label" parent="HBoxContainer/TextureRect/TextureRect"] +[node name="time" type="Label" parent="TextureRect"] layout_mode = 1 anchors_preset = -1 anchor_left = 0.347656 @@ -66,7 +109,7 @@ text = "12:12" vertical_alignment = 1 metadata/_edit_use_anchors_ = true -[node name="Label3" type="Label" parent="HBoxContainer/TextureRect/TextureRect"] +[node name="Label3" type="Label" parent="TextureRect"] layout_mode = 1 anchors_preset = -1 anchor_left = 0.59375 @@ -80,7 +123,7 @@ text = "天气:" vertical_alignment = 1 metadata/_edit_use_anchors_ = true -[node name="weather" type="Label" parent="HBoxContainer/TextureRect/TextureRect"] +[node name="weather" type="Label" parent="TextureRect"] layout_mode = 1 anchors_preset = -1 anchor_left = 0.816406 @@ -94,7 +137,7 @@ text = "晴" vertical_alignment = 1 metadata/_edit_use_anchors_ = true -[node name="pos" type="Label" parent="HBoxContainer/TextureRect/TextureRect"] +[node name="pos" type="Label" parent="TextureRect"] layout_mode = 1 anchors_preset = -1 anchor_left = 0.347656 @@ -108,24 +151,4 @@ text = "(000,000)" vertical_alignment = 1 metadata/_edit_use_anchors_ = true -[node name="TextureRect2" type="TextureRect" parent="HBoxContainer"] -layout_mode = 2 -size_flags_horizontal = 0 -texture = ExtResource("2_slael") -expand_mode = 3 - -[node name="map_add_pos" type="Panel" parent="HBoxContainer"] -layout_mode = 2 -size_flags_horizontal = 3 - -[node name="TextureRect4" type="TextureRect" parent="HBoxContainer"] -layout_mode = 2 -size_flags_horizontal = 8 -texture = ExtResource("2_slael") -expand_mode = 3 - -[node name="TextureRect3" type="TextureRect" parent="HBoxContainer"] -layout_mode = 2 -size_flags_horizontal = 0 -texture = ExtResource("1_e45qx") -expand_mode = 3 +[connection signal="gui_input" from="ScrollContainer" to="." method="_on_scroll_container_gui_input"] diff --git a/scene/mapA03A.tmp b/scene/mapA03A.tmp new file mode 100644 index 0000000..0c56cd0 --- /dev/null +++ b/scene/mapA03A.tmp @@ -0,0 +1,136 @@ +[gd_scene load_steps=6 format=3 uid="uid://ccsaeb8hm5lsu"] + +[ext_resource type="Texture2D" uid="uid://bx2layh7wm6ft" path="res://res/ui/ui_021_map/tuceng309.png" id="1_e45qx"] +[ext_resource type="Script" path="res://scene/map.gd" id="1_ifxi0"] +[ext_resource type="Texture2D" uid="uid://bc4vkd7u4s4sb" path="res://res/ui/ui_021_map/tuceng308.png" id="2_slael"] +[ext_resource type="Texture2D" uid="uid://bo84mljdw3my8" path="res://res/ui/ui_021_map/tuceng315.png" id="3_4y8t4"] +[ext_resource type="PackedScene" uid="uid://dtbfpnr54ifod" path="res://test/scene/map_example.tscn" id="5_jn1dj"] + +[node name="map" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_ifxi0") + +[node name="ScrollContainer" type="ScrollContainer" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="ScrollContainer"] +layout_mode = 2 + +[node name="TextureRect" type="TextureRect" parent="ScrollContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 0 +texture = ExtResource("1_e45qx") +expand_mode = 3 + +[node name="TextureRect" type="TextureRect" parent="ScrollContainer/HBoxContainer/TextureRect"] +z_index = 1 +layout_mode = 1 +anchors_preset = 1 +anchor_left = 1.0 +anchor_right = 1.0 +offset_left = 3.94254 +offset_right = 515.943 +offset_bottom = 142.0 +grow_horizontal = 0 +texture = ExtResource("3_4y8t4") + +[node name="date" type="Label" parent="ScrollContainer/HBoxContainer/TextureRect/TextureRect"] +layout_mode = 0 +anchor_left = 0.347656 +anchor_right = 1.0 +anchor_bottom = 0.373239 +offset_bottom = -4.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 38 +text = "1999/12/12" +vertical_alignment = 1 +metadata/_edit_use_anchors_ = true + +[node name="time" type="Label" parent="ScrollContainer/HBoxContainer/TextureRect/TextureRect"] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.347656 +anchor_top = 0.34507 +anchor_right = 0.556641 +anchor_bottom = 0.746479 +offset_bottom = -4.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 38 +text = "12:12" +vertical_alignment = 1 +metadata/_edit_use_anchors_ = true + +[node name="Label3" type="Label" parent="ScrollContainer/HBoxContainer/TextureRect/TextureRect"] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.59375 +anchor_top = 0.34507 +anchor_right = 0.816406 +anchor_bottom = 0.746479 +offset_bottom = -4.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 38 +text = "天气:" +vertical_alignment = 1 +metadata/_edit_use_anchors_ = true + +[node name="weather" type="Label" parent="ScrollContainer/HBoxContainer/TextureRect/TextureRect"] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.816406 +anchor_top = 0.34507 +anchor_right = 1.03906 +anchor_bottom = 0.746479 +offset_bottom = -4.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 38 +text = "晴" +vertical_alignment = 1 +metadata/_edit_use_anchors_ = true + +[node name="pos" type="Label" parent="ScrollContainer/HBoxContainer/TextureRect/TextureRect"] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.347656 +anchor_top = 0.661972 +anchor_right = 1.0 +anchor_bottom = 1.06338 +offset_bottom = -4.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 38 +text = "(000,000)" +vertical_alignment = 1 +metadata/_edit_use_anchors_ = true + +[node name="TextureRect2" type="TextureRect" parent="ScrollContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 0 +texture = ExtResource("2_slael") +expand_mode = 3 + +[node name="map_example" parent="ScrollContainer/HBoxContainer" instance=ExtResource("5_jn1dj")] +layout_mode = 2 + +[node name="TextureRect4" type="TextureRect" parent="ScrollContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 8 +texture = ExtResource("2_slael") +expand_mode = 3 + +[node name="TextureRect3" type="TextureRect" parent="ScrollContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 0 +texture = ExtResource("1_e45qx") +expand_mode = 3 + +[connection signal="gui_input" from="ScrollContainer" to="." method="_on_scroll_container_gui_input"] diff --git a/scene/map_scroll.gd b/scene/map_scroll.gd new file mode 100644 index 0000000..8668c21 --- /dev/null +++ b/scene/map_scroll.gd @@ -0,0 +1,17 @@ +extends ScrollContainer + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass + + +func _input(event: InputEvent) -> void: + + + pass diff --git a/test/map/map_01.png b/test/map/map_01.png new file mode 100644 index 0000000000000000000000000000000000000000..b775705e9bc31a06b03e8ccb33a2d29064b62192 GIT binary patch literal 13841 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
    uOoGd?L(mCZT?Iw{-5Qp?hj_^{HQ*vViBZMX@ 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 literal 0 HcmV?d00001 diff --git a/test/map/map_02.png.import b/test/map/map_02.png.import new file mode 100644 index 0000000..0707f1e --- /dev/null +++ b/test/map/map_02.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dojjaa08033rm" +path="res://.godot/imported/map_02.png-da847203548d4544098afa3da799152a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://test/map/map_02.png" +dest_files=["res://.godot/imported/map_02.png-da847203548d4544098afa3da799152a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/test/map/map_03.png b/test/map/map_03.png new file mode 100644 index 0000000000000000000000000000000000000000..08afeca4f87aeb498f5fcfeeeb9dda8c91c430ef GIT binary patch literal 22179 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 sGY|=!UOJ4Mu1b*q{pbHR1%mRLLe|Ljr^