diff --git a/DungeonShooting_Godot/prefab/ui/WeaponRoulette.tscn b/DungeonShooting_Godot/prefab/ui/WeaponRoulette.tscn
index 99cbb14..37b98be 100644
--- a/DungeonShooting_Godot/prefab/ui/WeaponRoulette.tscn
+++ b/DungeonShooting_Godot/prefab/ui/WeaponRoulette.tscn
@@ -1,16 +1,51 @@
-[gd_scene load_steps=3 format=3 uid="uid://dbjpknb3d5gfw"]
+[gd_scene load_steps=4 format=3 uid="uid://dbjpknb3d5gfw"]
[ext_resource type="Script" path="res://src/game/ui/weaponRoulette/WeaponRoulettePanel.cs" id="1_1uvbk"]
-[ext_resource type="Texture2D" uid="uid://uhhfgdhpk7i4" path="res://icon.png" id="2_yfusg"]
+[ext_resource type="Texture2D" uid="uid://e6krxgte01j3" path="res://resource/sprite/ui/roulette/RouletteBg.png" id="2_k6gjh"]
+[ext_resource type="Texture2D" uid="uid://civvcowt2wklr" path="res://resource/sprite/weapon/weapon0001/Weapon0001.png" id="3_f6rvp"]
[node name="WeaponRoulette" 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_1uvbk")
-[node name="Icon" type="Sprite2D" parent="."]
-visible = false
-position = Vector2(113, 116)
-texture = ExtResource("2_yfusg")
+[node name="Bg" type="ColorRect" parent="."]
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+color = Color(0, 0, 0, 0.588235)
+
+[node name="Control" type="Control" parent="."]
+layout_mode = 1
+anchors_preset = 8
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+offset_left = -0.5
+offset_top = -20.0
+offset_right = 0.5
+offset_bottom = -19.0
+grow_horizontal = 2
+grow_vertical = 2
+
+[node name="RouletteBg" type="Sprite2D" parent="Control"]
+scale = Vector2(4, 4)
+texture = ExtResource("2_k6gjh")
+
+[node name="WeaponSlot" type="Node2D" parent="Control/RouletteBg"]
+
+[node name="Sprite" type="Sprite2D" parent="Control/RouletteBg/WeaponSlot"]
+position = Vector2(65, 2.08165e-12)
+texture = ExtResource("3_f6rvp")
+
+[node name="Area2D" type="Area2D" parent="Control/RouletteBg/WeaponSlot"]
+
+[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Control/RouletteBg/WeaponSlot/Area2D"]
diff --git a/DungeonShooting_Godot/resource/sprite/Light.png b/DungeonShooting_Godot/resource/sprite/Light.png
new file mode 100644
index 0000000..e5d1fcd
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/Light.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/Light.png.import b/DungeonShooting_Godot/resource/sprite/Light.png.import
new file mode 100644
index 0000000..22630da
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/Light.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://d0c6oc02hkp4i"
+path="res://.godot/imported/Light.png-9ee16c293926cdacc658fb283472a574.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/Light.png"
+dest_files=["res://.godot/imported/Light.png-9ee16c293926cdacc658fb283472a574.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/DungeonShooting_Godot/resource/sprite/ui/roulette/RouletteBg.png b/DungeonShooting_Godot/resource/sprite/ui/roulette/RouletteBg.png
new file mode 100644
index 0000000..3518e20
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/roulette/RouletteBg.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/roulette/RouletteBg.png.import b/DungeonShooting_Godot/resource/sprite/ui/roulette/RouletteBg.png.import
new file mode 100644
index 0000000..91d39df
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/roulette/RouletteBg.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://e6krxgte01j3"
+path="res://.godot/imported/RouletteBg.png-a8e0ab7b49cd64da4b7f4e5bab210d71.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/ui/roulette/RouletteBg.png"
+dest_files=["res://.godot/imported/RouletteBg.png-a8e0ab7b49cd64da4b7f4e5bab210d71.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/DungeonShooting_Godot/scene/Hall.tscn b/DungeonShooting_Godot/scene/Hall.tscn
index 7119221..23cb0c9 100644
--- a/DungeonShooting_Godot/scene/Hall.tscn
+++ b/DungeonShooting_Godot/scene/Hall.tscn
@@ -104,6 +104,7 @@
shape = SubResource("RectangleShape2D_ru8u4")
[node name="StaticBody2D" type="StaticBody2D" parent="." index="5"]
+visible = false
collision_mask = 0
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D" index="0"]
@@ -146,7 +147,7 @@
ShowOffset = Vector2(2.08165e-12, 2)
CollisionVisible = false
-[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0006" index="1"]
+[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0006" index="0"]
position = Vector2(-10, -7)
texture = ExtResource("7_30qwa")
@@ -158,7 +159,7 @@
ShowOffset = Vector2(2.08165e-12, 2)
CollisionVisible = false
-[node name="ActivityInstance" type="Node2D" parent="ItemRoot/Item0008" index="1"]
+[node name="ActivityInstance" type="Node2D" parent="ItemRoot/Item0008" index="0"]
position = Vector2(2.5, -12)
script = ExtResource("5_lowqi")
Id = "item_0031"
@@ -174,7 +175,7 @@
ShowOffset = Vector2(2.08165e-12, 2)
CollisionVisible = false
-[node name="Item26" type="Sprite2D" parent="ItemRoot/Item0013" index="1"]
+[node name="Item26" type="Sprite2D" parent="ItemRoot/Item0013" index="0"]
position = Vector2(18, -2)
texture = ExtResource("8_61dkg")
@@ -194,19 +195,19 @@
ShowOffset = Vector2(2.08165e-12, 2)
CollisionVisible = false
-[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0017" index="1"]
+[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0017" index="0"]
position = Vector2(-3, -16)
texture = ExtResource("8_u3vry")
-[node name="Sprite2D2" type="Sprite2D" parent="ItemRoot/Item0017" index="2"]
+[node name="Sprite2D2" type="Sprite2D" parent="ItemRoot/Item0017" index="1"]
position = Vector2(18, -11)
texture = ExtResource("9_lhdr8")
-[node name="Sprite2D3" type="Sprite2D" parent="ItemRoot/Item0017" index="3"]
+[node name="Sprite2D3" type="Sprite2D" parent="ItemRoot/Item0017" index="2"]
position = Vector2(-16, -8)
texture = ExtResource("10_4eqn0")
-[node name="Sprite2D4" type="Sprite2D" parent="ItemRoot/Item0017" index="4"]
+[node name="Sprite2D4" type="Sprite2D" parent="ItemRoot/Item0017" index="3"]
position = Vector2(10, -7)
texture = ExtResource("11_tg3jo")
@@ -238,11 +239,11 @@
DefaultLayer = 1
CollisionVisible = false
-[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0002" index="1"]
+[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0002" index="0"]
position = Vector2(32, -2)
texture = ExtResource("12_agfji")
-[node name="Sprite2D2" type="Sprite2D" parent="ItemRoot/Item0002" index="2"]
+[node name="Sprite2D2" type="Sprite2D" parent="ItemRoot/Item0002" index="1"]
material = SubResource("ShaderMaterial_i7git")
position = Vector2(0, -18)
scale = Vector2(1, -1)
@@ -260,7 +261,7 @@
Id = "item_0004"
DefaultLayer = 1
-[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0004" index="1"]
+[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0004" index="0"]
position = Vector2(0, -17)
texture = ExtResource("13_unnpl")
@@ -294,15 +295,15 @@
Id = "item_0009"
DefaultLayer = 1
-[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0009" index="1"]
+[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0009" index="0"]
position = Vector2(-24, -10)
texture = ExtResource("15_h7524")
-[node name="Sprite2D2" type="Sprite2D" parent="ItemRoot/Item0009" index="2"]
+[node name="Sprite2D2" type="Sprite2D" parent="ItemRoot/Item0009" index="1"]
position = Vector2(1, -10)
texture = ExtResource("15_h7524")
-[node name="Sprite2D3" type="Sprite2D" parent="ItemRoot/Item0009" index="3"]
+[node name="Sprite2D3" type="Sprite2D" parent="ItemRoot/Item0009" index="2"]
position = Vector2(37, -10)
texture = ExtResource("15_h7524")
@@ -336,7 +337,7 @@
Id = "item_0015"
DefaultLayer = 1
-[node name="Slice04" type="Sprite2D" parent="ItemRoot/Item0015" index="1"]
+[node name="Slice04" type="Sprite2D" parent="ItemRoot/Item0015" index="0"]
position = Vector2(16, -9)
texture = ExtResource("15_h7524")
@@ -358,11 +359,11 @@
Id = "item_0019"
DefaultLayer = 1
-[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0019" index="1"]
+[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0019" index="0"]
position = Vector2(-23, -7)
texture = ExtResource("16_xj0e1")
-[node name="Sprite2D2" type="Sprite2D" parent="ItemRoot/Item0019" index="2"]
+[node name="Sprite2D2" type="Sprite2D" parent="ItemRoot/Item0019" index="1"]
position = Vector2(24, -8)
texture = ExtResource("17_gwwce")
diff --git a/DungeonShooting_Godot/src/game/ui/roomMap/RoomMapPanel.cs b/DungeonShooting_Godot/src/game/ui/roomMap/RoomMapPanel.cs
index bc71185..3009e94 100644
--- a/DungeonShooting_Godot/src/game/ui/roomMap/RoomMapPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/roomMap/RoomMapPanel.cs
@@ -64,17 +64,12 @@
{
if (UiManager.GetUiInstanceCount(UiManager.UiNames.PauseMenu) == 0)
{
- World.Current.Pause = true;
- _pressMapFlag = true;
- _isMagnifyMap = true;
- MagnifyMap();
+ ExpandMap();
}
}
else if (!InputManager.Map && _isMagnifyMap) //还原小地图
{
- ResetMap();
- _isMagnifyMap = false;
- World.Current.Pause = false;
+ ShrinkMap();
}
}
@@ -175,6 +170,27 @@
}
}
+ ///
+ /// 执行展开地图
+ ///
+ public void ExpandMap()
+ {
+ World.Current.Pause = true;
+ _pressMapFlag = true;
+ _isMagnifyMap = true;
+ MagnifyMap();
+ }
+
+ ///
+ /// 执行收起地图
+ ///
+ public void ShrinkMap()
+ {
+ ResetMap();
+ _isMagnifyMap = false;
+ World.Current.Pause = false;
+ }
+
private void OnDrawContainerResized()
{
S_Mark.Instance.Position = S_DrawContainer.Instance.Size / 2;
diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs
index 70dfb0d..466618c 100644
--- a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs
@@ -16,6 +16,8 @@
private EventFactory _factory;
+ private bool _showMap = false;
+
public override void OnCreateUi()
{
_reloadBar = new ReloadBarHandler(L_ReloadBar);
@@ -64,6 +66,8 @@
_weaponBar.Process(delta);
_activePropBar.Process(delta);
_lifeBar.Process(delta);
+
+
}
//玩家拾起道具, 弹出提示
diff --git a/DungeonShooting_Godot/src/game/ui/weaponRoulette/WeaponRoulette.cs b/DungeonShooting_Godot/src/game/ui/weaponRoulette/WeaponRoulette.cs
index 65cb7a5..64dc32a 100644
--- a/DungeonShooting_Godot/src/game/ui/weaponRoulette/WeaponRoulette.cs
+++ b/DungeonShooting_Godot/src/game/ui/weaponRoulette/WeaponRoulette.cs
@@ -6,17 +6,30 @@
public abstract partial class WeaponRoulette : UiBase
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: WeaponRoulette.Icon
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: WeaponRoulette.Bg
///
- public Icon L_Icon
+ public Bg L_Bg
{
get
{
- if (_L_Icon == null) _L_Icon = new Icon((WeaponRoulettePanel)this, GetNode("Icon"));
- return _L_Icon;
+ if (_L_Bg == null) _L_Bg = new Bg((WeaponRoulettePanel)this, GetNode("Bg"));
+ return _L_Bg;
}
}
- private Icon _L_Icon;
+ private Bg _L_Bg;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: WeaponRoulette.Control
+ ///
+ public Control L_Control
+ {
+ get
+ {
+ if (_L_Control == null) _L_Control = new Control((WeaponRoulettePanel)this, GetNode("Control"));
+ return _L_Control;
+ }
+ }
+ private Control _L_Control;
public WeaponRoulette() : base(nameof(WeaponRoulette))
@@ -29,18 +42,167 @@
}
///
- /// 类型: , 路径: WeaponRoulette.Icon
+ /// 类型: , 路径: WeaponRoulette.Bg
///
- public class Icon : UiNode
+ public class Bg : UiNode
{
- public Icon(WeaponRoulettePanel uiPanel, Godot.Sprite2D node) : base(uiPanel, node) { }
- public override Icon Clone() => new (UiPanel, (Godot.Sprite2D)Instance.Duplicate());
+ public Bg(WeaponRoulettePanel uiPanel, Godot.ColorRect node) : base(uiPanel, node) { }
+ public override Bg Clone() => new (UiPanel, (Godot.ColorRect)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: WeaponRoulette.Control.RouletteBg.WeaponSlot.Sprite
+ ///
+ public class Sprite : UiNode
+ {
+ public Sprite(WeaponRoulettePanel uiPanel, Godot.Sprite2D node) : base(uiPanel, node) { }
+ public override Sprite Clone() => new (UiPanel, (Godot.Sprite2D)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: WeaponRoulette.Control.RouletteBg.WeaponSlot.Area2D.CollisionPolygon2D
+ ///
+ public class CollisionPolygon2D : UiNode
+ {
+ public CollisionPolygon2D(WeaponRoulettePanel uiPanel, Godot.CollisionPolygon2D node) : base(uiPanel, node) { }
+ public override CollisionPolygon2D Clone() => new (UiPanel, (Godot.CollisionPolygon2D)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: WeaponRoulette.Control.RouletteBg.WeaponSlot.Area2D
+ ///
+ public class Area2D : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: WeaponRoulette.Control.RouletteBg.WeaponSlot.CollisionPolygon2D
+ ///
+ public CollisionPolygon2D L_CollisionPolygon2D
+ {
+ get
+ {
+ if (_L_CollisionPolygon2D == null) _L_CollisionPolygon2D = new CollisionPolygon2D(UiPanel, Instance.GetNode("CollisionPolygon2D"));
+ return _L_CollisionPolygon2D;
+ }
+ }
+ private CollisionPolygon2D _L_CollisionPolygon2D;
+
+ public Area2D(WeaponRoulettePanel uiPanel, Godot.Area2D node) : base(uiPanel, node) { }
+ public override Area2D Clone() => new (UiPanel, (Godot.Area2D)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: WeaponRoulette.Control.RouletteBg.WeaponSlot
+ ///
+ public class WeaponSlot : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: WeaponRoulette.Control.RouletteBg.Sprite
+ ///
+ public Sprite L_Sprite
+ {
+ get
+ {
+ if (_L_Sprite == null) _L_Sprite = new Sprite(UiPanel, Instance.GetNode("Sprite"));
+ return _L_Sprite;
+ }
+ }
+ private Sprite _L_Sprite;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: WeaponRoulette.Control.RouletteBg.Area2D
+ ///
+ public Area2D L_Area2D
+ {
+ get
+ {
+ if (_L_Area2D == null) _L_Area2D = new Area2D(UiPanel, Instance.GetNode("Area2D"));
+ return _L_Area2D;
+ }
+ }
+ private Area2D _L_Area2D;
+
+ public WeaponSlot(WeaponRoulettePanel uiPanel, Godot.Node2D node) : base(uiPanel, node) { }
+ public override WeaponSlot Clone() => new (UiPanel, (Godot.Node2D)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: WeaponRoulette.Control.RouletteBg
+ ///
+ public class RouletteBg : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: WeaponRoulette.Control.WeaponSlot
+ ///
+ public WeaponSlot L_WeaponSlot
+ {
+ get
+ {
+ if (_L_WeaponSlot == null) _L_WeaponSlot = new WeaponSlot(UiPanel, Instance.GetNode("WeaponSlot"));
+ return _L_WeaponSlot;
+ }
+ }
+ private WeaponSlot _L_WeaponSlot;
+
+ public RouletteBg(WeaponRoulettePanel uiPanel, Godot.Sprite2D node) : base(uiPanel, node) { }
+ public override RouletteBg Clone() => new (UiPanel, (Godot.Sprite2D)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: WeaponRoulette.Control
+ ///
+ public class Control : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: WeaponRoulette.RouletteBg
+ ///
+ public RouletteBg L_RouletteBg
+ {
+ get
+ {
+ if (_L_RouletteBg == null) _L_RouletteBg = new RouletteBg(UiPanel, Instance.GetNode("RouletteBg"));
+ return _L_RouletteBg;
+ }
+ }
+ private RouletteBg _L_RouletteBg;
+
+ public Control(WeaponRoulettePanel uiPanel, Godot.Control node) : base(uiPanel, node) { }
+ public override Control Clone() => new (UiPanel, (Godot.Control)Instance.Duplicate());
}
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: WeaponRoulette.Icon
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: WeaponRoulette.Bg
///
- public Icon S_Icon => L_Icon;
+ public Bg S_Bg => L_Bg;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: WeaponRoulette.Control.RouletteBg.WeaponSlot.Sprite
+ ///
+ public Sprite S_Sprite => L_Control.L_RouletteBg.L_WeaponSlot.L_Sprite;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: WeaponRoulette.Control.RouletteBg.WeaponSlot.Area2D.CollisionPolygon2D
+ ///
+ public CollisionPolygon2D S_CollisionPolygon2D => L_Control.L_RouletteBg.L_WeaponSlot.L_Area2D.L_CollisionPolygon2D;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: WeaponRoulette.Control.RouletteBg.WeaponSlot.Area2D
+ ///
+ public Area2D S_Area2D => L_Control.L_RouletteBg.L_WeaponSlot.L_Area2D;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: WeaponRoulette.Control.RouletteBg.WeaponSlot
+ ///
+ public WeaponSlot S_WeaponSlot => L_Control.L_RouletteBg.L_WeaponSlot;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: WeaponRoulette.Control.RouletteBg
+ ///
+ public RouletteBg S_RouletteBg => L_Control.L_RouletteBg;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: WeaponRoulette.Control
+ ///
+ public Control S_Control => L_Control;
}
diff --git a/DungeonShooting_Godot/src/game/ui/weaponRoulette/WeaponRoulettePanel.cs b/DungeonShooting_Godot/src/game/ui/weaponRoulette/WeaponRoulettePanel.cs
index 504f694..1e17149 100644
--- a/DungeonShooting_Godot/src/game/ui/weaponRoulette/WeaponRoulettePanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/weaponRoulette/WeaponRoulettePanel.cs
@@ -7,13 +7,28 @@
///
public partial class WeaponRoulettePanel : WeaponRoulette
{
+ ///
+ /// 武器槽数量
+ ///
+ public const int SlotCount = 6;
//是否展开轮盘
private bool _pressRouletteFlag = false;
+ private bool _isMagnifyRoulette = false;
public override void OnCreateUi()
{
+ S_RouletteBg.Instance.Visible = false;
+ S_Bg.Instance.Visible = false;
+
+ for (var i = 0; i < SlotCount; i++)
+ {
+ var angle = i * (360 / SlotCount);
+ var clone = S_WeaponSlot.CloneAndPut();
+ clone.Instance.RotationDegrees = angle;
+ }
+ S_WeaponSlot.Instance.Visible = false;
}
public override void OnDestroyUi()
@@ -27,5 +42,37 @@
{
_pressRouletteFlag = false;
}
+
+ //按下地图按键
+ if (InputManager.Roulette && !_isMagnifyRoulette) //打开轮盘
+ {
+ if (UiManager.GetUiInstanceCount(UiManager.UiNames.PauseMenu) == 0)
+ {
+ ExpandRoulette();
+ }
+ }
+ else if (!InputManager.Roulette && _isMagnifyRoulette) //缩小轮盘
+ {
+ ShrinkRoulette();
+ }
+ }
+
+ private void ExpandRoulette()
+ {
+ World.Current.Pause = true;
+ _pressRouletteFlag = true;
+ _isMagnifyRoulette = true;
+
+ S_RouletteBg.Instance.Visible = true;
+ S_Bg.Instance.Visible = true;
+ }
+
+ private void ShrinkRoulette()
+ {
+ S_RouletteBg.Instance.Visible = false;
+ S_Bg.Instance.Visible = false;
+
+ _isMagnifyRoulette = false;
+ World.Current.Pause = false;
}
}