Godot 3.2.4 rc3
接着上一篇 【GDScript】物品的拖拽,我们开始做装备栏。
开始之前先在 Goods.gd 脚本里添加两 信号。swap_goods 方法里进行发出信号,判断物品是否发生改变,修改后的代码如下:
signal swaped_property(old_property, new_property) # 交换属性信号
signal unload(property) # 卸下物品
func swap_goods(a, b):
# 交换物品信号
a.emit_signal("swaped_property", a.goods_property, b.goods_property)
b.emit_signal("swaped_property", b.goods_property, a.goods_property)
# 卸下物品信号
if a == null:
b.emit_signal("unload", b.goods_property)
if b == null:
a.emit_signal("unload", a.goods_property)
# 进行属性交换
var p_temp = a.goods_property
a.goods_property = b.goods_property
b.goods_property = p_temp
Goods.tscn 场景里添加一个 TextureRect 节点,节点名称改为 Background,勾选 show_behind_parent 属性,设置 self modulate 属性为黑色,勾选 expand 属性,设置 rect_min_size 属性为 50x50


场景节点如下

在 Goods.gd 脚本 setget 部分添加修改 Background 背景的代码,如下:
export (Texture) var background setget set_background
onready var background_rect = $Background
func set_background(value):
background = value
if background_rect == null:
yield(self, "ready")
background_rect.texture = value
将 文件系统里的 Godot 图标 icon.png 文件,拖放到根节点 Goods 节点的 Background 属性上,用于拖拽时隐藏背景图。
get_drag_data 方法里添加一行代码 drag_node.background_rect.visible = false

装备面板场景
新建一个场景,添加一个 Panel 节点作为根节点,调整它的大小,修改名称为 EquipmentPanel,保存场景,然后再给它添加一个脚本,脚本创建完先不写代码。如下

选中 Goods 节点按 Ctrl + D,复制 6 个,然后调整位置,完成后

本文详细介绍如何在Godot引擎中实现游戏内的装备系统,包括物品拖拽、装备栏交互及角色属性变化等功能。
最低0.47元/天 解锁文章
1150

被折叠的 条评论
为什么被折叠?



