mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 06:51:54 +08:00
feat(UI): 添加武器面板功能
实现武器面板的打开关闭逻辑,包括: - 创建WeaponPanel脚本处理武器转移 - 在UIState中添加武器面板输入控制 - 更新UI场景添加武器面板节点 - 简化武器面板场景结构
This commit is contained in:
@@ -1,25 +1,16 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://dekcqdhrjs07u"]
|
||||
[gd_scene load_steps=3 format=3 uid="uid://dekcqdhrjs07u"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://d3qojeqa3difn" path="res://components/Abstracts/FullscreenPanelBase.tscn" id="1_yodmq"]
|
||||
[ext_resource type="PackedScene" uid="uid://c0n3igy4hucrg" path="res://components/Weapons/PurpleCrystal.tscn" id="2_5r0we"]
|
||||
[ext_resource type="PackedScene" uid="uid://cxabqjo7skxev" path="res://components/Weapons/BigLaser.tscn" id="3_6xf37"]
|
||||
[ext_resource type="PackedScene" uid="uid://wl8u5m52708w" path="res://components/Weapons/LGBT.tscn" id="4_s13oq"]
|
||||
[ext_resource type="Script" path="res://scripts/Contents/Panels/WeaponPanel.gd" id="2_6alu1"]
|
||||
|
||||
[node name="Weapon" instance=ExtResource("1_yodmq")]
|
||||
script = ExtResource("2_6alu1")
|
||||
|
||||
[node name="wrapper" parent="content" index="0"]
|
||||
theme_override_constants/separation = 50
|
||||
|
||||
[node name="box" type="HBoxContainer" parent="content/wrapper" index="0"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 20
|
||||
alignment = 1
|
||||
|
||||
[node name="PurpleCrystal" parent="content/wrapper/box" index="0" instance=ExtResource("2_5r0we")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="BigLaser" parent="content/wrapper/box" index="1" instance=ExtResource("3_6xf37")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="???" parent="content/wrapper/box" index="2" instance=ExtResource("4_s13oq")]
|
||||
layout_mode = 2
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=18 format=3 uid="uid://dfwg750a47ggx"]
|
||||
[gd_scene load_steps=19 format=3 uid="uid://dfwg750a47ggx"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://ofpg5s3j7esv" path="res://components/UI/BossBar.tscn" id="1_2pe58"]
|
||||
[ext_resource type="Script" path="res://scripts/Statemachine/UIState.gd" id="1_f00a6"]
|
||||
@@ -12,6 +12,7 @@
|
||||
[ext_resource type="PackedScene" uid="uid://d1ulrvupa76ap" path="res://components/UI/ColorBar.tscn" id="9_44nw8"]
|
||||
[ext_resource type="StyleBox" uid="uid://ddnjus87wwlm8" path="res://styleboxes/leftPanel.tres" id="11_67ghp"]
|
||||
[ext_resource type="PackedScene" uid="uid://cksonrrx38k36" path="res://components/Scenes/FullscreenPanels/Pause.tscn" id="12_jkm6o"]
|
||||
[ext_resource type="PackedScene" uid="uid://dekcqdhrjs07u" path="res://components/Scenes/FullscreenPanels/Weapon.tscn" id="13_bmc24"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ri8gw"]
|
||||
content_margin_left = 20.0
|
||||
@@ -272,3 +273,7 @@ layout_mode = 1
|
||||
|
||||
[node name="Pause" parent="root/panels" instance=ExtResource("12_jkm6o")]
|
||||
layout_mode = 1
|
||||
|
||||
[node name="Weapon" parent="root/panels" instance=ExtResource("13_bmc24")]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
@tool
|
||||
extends FullscreenPanelBase
|
||||
|
||||
@onready var audio = $"%audio"
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
@tool
|
||||
extends FullscreenPanelBase
|
||||
|
||||
@onready var box = $"%box"
|
||||
|
||||
func beforeOpen():
|
||||
for weapon in UIState.player.weapons:
|
||||
UIState.player.weaponStore.remove_child(weapon)
|
||||
box.add_child(weapon)
|
||||
func afterClose():
|
||||
for weapon in box.get_children():
|
||||
box.remove_child(weapon)
|
||||
UIState.player.weaponStore.add_child(weapon)
|
||||
@@ -49,6 +49,16 @@ func _physics_process(_delta):
|
||||
closeCurrentPanel()
|
||||
else:
|
||||
setPanel("Pause")
|
||||
if Input.is_action_just_pressed("openWeapon"):
|
||||
var canOpen = true
|
||||
if currentPanel:
|
||||
if currentPanel.name == "Weapon":
|
||||
closeCurrentPanel()
|
||||
canOpen = false
|
||||
elif ["MakeFeed", "GameOver"].has(currentPanel.name):
|
||||
canOpen = false
|
||||
if canOpen:
|
||||
setPanel("Weapon")
|
||||
|
||||
static func setPanel(targetName: String = ""):
|
||||
currentPanel = null
|
||||
|
||||
Reference in New Issue
Block a user