贴花系统
在铁锈战争中,贴花系统用于在单位上添加额外的视觉效果。本章节将详细介绍如何配置贴花,包括图像设置、显示条件、位置控制等。
贴花基本配置
贴花系统通过[decal_#]部分来定义,其中#是贴花的编号:
[decal_#] 贴花设置
[decal_1]
image:decals/shield.png
layer:afterBody
order:1
贴花基本属性说明
| 属性 | 说明 | 示例 |
|---|---|---|
| image | 贴花图像 | image:decals/shield.png |
| layer | 绘制图层 | layer:afterBody |
| order | 排序 | order:1 |
图层设置
可以设置贴花的绘制图层:
图层类型
[decal_1]
image:decals/shadow.png
layer:shadow
[decal_2]
image:decals/overlay.png
layer:beforeBody
[decal_3]
image:decals/effect.png
layer:afterBody
[decal_4]
image:decals/ui.png
layer:onTop
[decal_5]
image:decals/interface.png
layer:beforeUI
图层类型说明
| 图层 | 说明 |
|---|---|
| shadow | 阴影层 |
| beforeBody | 主体之上层 |
| afterBody | 主体之下层 |
| onTop | 最顶层 |
| beforeUI | 界面之上层 |
显示条件设置
可以设置贴花的显示条件:
显示条件属性
[decal_1]
image:decals/selected.png
layer:onTop
onlyWhenSelectedByOwnPlayer:true
onlyWhenSelectedByEnemyPlayer:false
onlyWhenSelectedByAllyNotOwnPlayer:false
onlyWhenSelectedByAnyPlayer:false
显示条件属性说明
| 属性 | 说明 | 示例 |
|---|---|---|
| onlyWhenSelectedByOwnPlayer | 仅在被拥有者选中时绘制 | onlyWhenSelectedByOwnPlayer:true |
| onlyWhenSelectedByEnemyPlayer | 被敌方玩家选中时绘制 | onlyWhenSelectedByEnemyPlayer:false |
| onlyWhenSelectedByAllyNotOwnPlayer | 非自身队伍的盟友选中时绘制 | onlyWhenSelectedByAllyNotOwnPlayer:false |
| onlyWhenSelectedByAnyPlayer | 被任意玩家选中时绘制 | onlyWhenSelectedByAnyPlayer:false |
队伍相关设置
可以设置贴花的队伍相关条件:
队伍相关属性
[decal_1]
image:decals/team_indicator.png
layer:onTop
onlyTeam:own
onlyPlayersWithUnitControl:true
队伍相关属性说明
| 属性 | 说明 | 示例 |
|---|---|---|
| onlyTeam | 仅在查看者为特定队伍时显示 | onlyTeam:own |
| onlyPlayersWithUnitControl | 仅在查看者能够控制此单位时绘制 | onlyPlayersWithUnitControl:true |
队伍关系选项
| 选项 | 说明 |
|---|---|
| own | 己方 |
| notOwn | 非己方 |
| neutral | 中立方 |
| allyNotOwn | 除自己外盟友 |
| ally | 盟友 |
| enemy | 敌方 |
| any | 任意 |
缩放和可见性设置
可以设置贴花的缩放和可见性:
缩放和可见性属性
[decal_1]
image:decals/detail.png
layer:afterBody
imageScale:1.5
imageScaleX:1.2
imageScaleY:1.2
isVisible:if self.hp < 500
onlyWithZoomLevelOrMore:true
onlyWhileActive:true
onlyWhileAlive:true
缩放和可见性属性说明
| 属性 | 说明 | 示例 |
|---|---|---|
| imageScale | 图像缩放(倍数) | imageScale:1.5 |
| imageScaleX | 图像X缩放 | imageScaleX:1.2 |
| imageScaleY | 图像Y缩放 | imageScaleY:1.2 |
| isVisible | 可见性条件 | isVisible:if self.hp < 500 |
| onlyWithZoomLevelOrMore | 仅当缩放到当前大小或更大时绘制 | onlyWithZoomLevelOrMore:true |
| onlyWhileActive | 仅在单位建造完成时绘制 | onlyWhileActive:true |
| onlyWhileAlive | 仅在存活时绘制 | onlyWhileAlive:true |
预览和非预览设置
可以设置贴花在预览和非预览状态下的显示:
预览相关属性
[decal_1]
image:decals/preview.png
layer:afterBody
onlyInPreview:true
[decal_2]
image:decals/normal.png
layer:afterBody
onlyOnNonPreview:true
预览相关属性说明
| 属性 | 说明 | 示例 |
|---|---|---|
| onlyInPreview | 仅在侧边栏和建筑放置预览中显示 | onlyInPreview:true |
| onlyOnNonPreview | 仅在非预览中显示 | onlyOnNonPreview:true |
图像堆叠设置
可以设置图像堆叠效果:
图像堆叠属性
[decal_1]
imageStack:decals/voxel_1.png,decals/voxel_2.png,decals/voxel_3.png
layer:afterBody
stack_hOffset:1
stack_frameOffset:2
stack_drawInReverseOrder:0
stack_indexStart:0
stack_indexCount:3
图像堆叠属性说明
| 属性 | 说明 | 示例 |
|---|---|---|
| imageStack | 图像列表 | imageStack:decals/voxel_1.png,decals/voxel_2.png |
| stack_hOffset | 列表图像高度偏移 | stack_hOffset:1 |
| stack_frameOffset | 列表图像帧偏移 | stack_frameOffset:2 |
| stack_drawInReverseOrder | 列表图像绘图顺序 | stack_drawInReverseOrder:0 |
| stack_indexStart | 列表图像起始图像 | stack_indexStart:0 |
| stack_indexCount | 列表图像数量 | stack_indexCount:3 |
帧动画设置
可以设置贴花的帧动画:
帧动画属性
[decal_1]
image:decals/animated.png
layer:afterBody
total_frames:12
frame_verticalOrdering:true
frame_width:32
frame_height:32
frame:0
addBodyFrameMultipliedBy:1.2
帧动画属性说明
| 属性 | 说明 | 示例 |
|---|---|---|
| total_frames | 总帧数 | total_frames:12 |
| frame_verticalOrdering | 帧清单 | frame_verticalOrdering:true |
| frame_width | 帧宽度 | frame_width:32 |
| frame_height | 帧高度 | frame_height:32 |
| frame | 帧 | frame:0 |
| addBodyFrameMultipliedBy | 添加主体帧乘数 | addBodyFrameMultipliedBy:1.2 |
位置和偏移设置
可以设置贴花的位置和偏移:
位置和偏移属性
[decal_1]
image:decals/indicator.png
layer:onTop
xOffsetRelative:200
yOffsetRelative:200
xOffsetAbsolute:10
yOffsetAbsolute:10
hOffset:2
dirOffset:25
pivotOffset:125
位置和偏移属性说明
| 属性 | 说明 | 示例 |
|---|---|---|
| xOffsetRelative | X相对偏移 | xOffsetRelative:200 |
| yOffsetRelative | Y相对偏移 | yOffsetRelative:200 |
| xOffsetAbsolute | X绝对偏移 | xOffsetAbsolute:10 |
| yOffsetAbsolute | Y绝对偏移 | yOffsetAbsolute:10 |
| hOffset | 高度偏移 | hOffset:2 |
| dirOffset | 朝向角偏移 | dirOffset:25 |
| pivotOffset | 坐标系旋转 | pivotOffset:125 |
中心位置设置
可以设置贴花的中心位置:
中心位置属性
[decal_1]
image:decals/target.png
layer:onTop
basePosition:nearestUnit
basePositionFromLeg:1
basePositionFromTurret:5
basePositionFromLegEnd:leg_1
中心位置属性说明
| 属性 | 说明 | 示例 |
|---|---|---|
| basePosition | 中心位置(填单位参考) | basePosition:nearestUnit |
| basePositionFromLeg | 以脚为中心位置 | basePositionFromLeg:1 |
| basePositionFromTurret | 以炮塔为中心位置 | basePositionFromTurret:5 |
| basePositionFromLegEnd | 以腿为中心位置 | basePositionFromLegEnd:leg_1 |
线条绘制设置
可以设置贴花的线条绘制效果:
线条绘制属性
[decal_1]
image:decals/line.png
layer:onTop
drawLineTo:nearestUnit
lineWidth:21.564
color:#FF0000
alpha:0.8
线条绘制属性说明
| 属性 | 说明 | 示例 |
|---|---|---|
| drawLineTo | 绘制线条到(受到颜色和宽度影响) | drawLineTo:nearestUnit |
| lineWidth | 线宽度 | lineWidth:21.564 |
| color | 颜色(影响图像和线条) | color:#FF0000 |
| alpha | 透明度(影响颜色和线条) | alpha:0.8 |
阴影设置
可以设置贴花的阴影效果:
阴影属性
[decal_1]
image:decals/object.png
layer:afterBody
image_shadow:decals/shadow.png
shadowOffsetX:12
shadowOffsetY:21
阴影属性说明
| 属性 | 说明 | 示例 |
|---|---|---|
| image_shadow | 阴影图像 | image_shadow:decals/shadow.png |
| shadowOffsetX | 阴影偏移X | shadowOffsetX:12 |
| shadowOffsetY | 阴影偏移Y | shadowOffsetY:21 |
颜色和团队设置
可以设置贴花的颜色和团队效果:
颜色和团队属性
[decal_1]
image:decals/team_color.png
layer:afterBody
teamColors:true
color:#00FF00
alpha:0.7
颜色和团队属性说明
| 属性 | 说明 | 示例 |
|---|---|---|
| teamColors | 阵营色 | teamColors:true |
| color | 颜色(影响图像和线条) | color:#00FF00 |
| alpha | 透明度(影响颜色和线条) | alpha:0.7 |
方向和高度设置
可以设置贴花的方向和高度:
方向和高度属性
[decal_1]
image:decals/indicator.png
layer:onTop
alwaysStartDirAtZero:true
alwaysStartHeightAtZero:false
方向和高度属性说明
| 属性 | 说明 | 示例 |
|---|---|---|
| alwaysStartDirAtZero | 总是固定朝向角为零(总是朝上) | alwaysStartDirAtZero:true |
| alwaysStartHeightAtZero | 总是固定高度为零 | alwaysStartHeightAtZero:false |
完整贴花示例
选择指示器贴花
[decal_selection]
image:decals/selection_ring.png
layer:onTop
order:1
onlyWhenSelectedByOwnPlayer:true
imageScale:1.2
color:#00FF00
alpha:0.8
alwaysStartDirAtZero:true
血量指示器贴花
[decal_health]
image:decals/health_bar.png
layer:onTop
order:2
onlyWhenSelectedByOwnPlayer:true
isVisible:if self.hp < self.maxHp
imageScaleX:1.5
imageScaleY:0.5
xOffsetRelative:0
yOffsetRelative:-50
color:#FF0000
alpha:0.9
团队标识贴花
[decal_team]
image:decals/team_icon.png
layer:onTop
order:3
onlyTeam:own
teamColors:true
imageScale:0.8
xOffsetRelative:0
yOffsetRelative:50
alwaysStartDirAtZero:true
特殊状态贴花
[decal_shield]
image:decals/shield_effect.png
layer:beforeBody
order:1
isVisible:if self.shield > 0
imageScale:1.3
color:#0000FF
alpha:0.6
注意事项
- 合理设置贴花的图层,避免遮挡重要信息
- 平衡贴花效果与游戏性能
- 为不同状态的单位设置适当的贴花
- 测试贴花在不同缩放级别下的表现
- 考虑贴花与单位整体设计的一致性