杀戮尖塔中有两种卡
单一目标卡牌和非单一目标卡牌
使用卡牌方法:
- 如果按住鼠标左键拖动防御卡并将其释放到屏幕中的某个位置,该卡就会被打出
- 另一种方法是鼠标左键单击防御卡,不按下左键,将其拖到屏幕中间,再次单击鼠标左键,打出卡牌
取消使用卡牌方法 - 单击鼠标右键
- 或者将卡牌往屏幕下方拖拽
创建CardUI节点
卡牌用控制节点来显示,用2D区域来处理卡牌放置区域逻辑
创建新场景
创建用户界面根节点
更名为CardUI
colorRect颜色控件
添加子节点
colorrect
是临时使用的颜色,可以在视觉上区分不同的状态,便于调试
再添加label
调节CardUI的大小
改变layout的transform的size为25的30,比较符合卡牌的大小
确保颜色会继承这个大小
选中color节点,选择整个矩形
可以将颜色变为一个绿色
Label文本控件
选中label节点,输入State
选择水平竖直居中
确保label从父节点继承尺寸
选择整个矩形
创建一个新主题
在根文件夹新建资源
选中新创建的主题
将art文件夹里的字体文件拖到右侧的默认字体的位置
设置默认字体大小为6
为cardUI配置主题
选择CardUI节点,在右侧找到Theme
选择快速加载
字体已经变为目标像素字体
保存场景
保存到scenes的CardUI里
添加区域
添加区域以便能够检测是否在Cardrop区域上方
选择CardUI,创建Area2D子节点
启用第一个检测属性,为了检测是否在卡牌放置区域上方,CardUI会处理这个问题
所以关闭可监控功能
设置图层和遮罩
将图层放在第一层
可以将第一层重命名为卡牌目标选择器
不想与其他的卡牌目标选择器产生冲突
所以将遮罩放在第二层上,将其命名为卡牌放置区域
添加碰撞形状
添加碰撞形状
在右侧添加矩形
使用W改变位置,Q拉伸形状,保证碰撞形状完全覆盖卡片
ctrl+s保存场景
添加carddroparea
添加2D区域
打开Battle场景
添加区域子节点
碰撞层设置为2,因为这是一个carddrop区域
遮罩层设置为1,因为它的目标是卡牌目标选择器层
添加碰撞形状
创建子节点,添加矩形
使其覆盖游戏屏幕的部分,将大小变为256和100
改变位置,输入128和50
ctrl+s保存场景
创建BattleUI
添加画布
选中Battle根节点
确保层数是1,以便将其渲染在游戏的上面
添加HboxContainer横向排列容器
需要添加几张卡牌
选择实例化子场景
添加cardUI
复制3个CardUI
此时无法看清文本和颜色
因为hbox容器正在处理子节点的大小
需要转到CardUI场景设置CardUI节点,此时已经设置大小了,但是不足以用来使用容器
设置节点边界尺寸为25和30
保存场景
更改Hand节点的锚点预设为底部居中
在layout的transform改变大小为150和30