动画
物品可以在面板中通过循环不同的外观,例如更改颜色或材料来呈现动画。这可以让你的菜单变得更加生动、富有趣味。
要创建动画,需要在物品中定义animate属性,它们会循环显示一系列物品,然后回到初始的物品,就像GIF动图那样。物品切换的速度与更新延迟的值相同,默认为20刻。
原理
- 物品属性
animate定义物品在动画序列中要显示的下一个物品。 - 面板属性
update-delay控制动画循环的速度。 - 当带有
animate属性的物品显示在槽位时,它会在短暂间隔后自动切换到animate属性中定义的物品。 - 如果动画序列中的某个物品未定义
animate,动画就会回到初始的物品,以此无限重复循环动画。 - 动画物品触发的所有命令和交互都继承自初始物品。充当动画帧的物品无需重新定义命令和交互。
示例:简易动画循环
title: '示例菜单'
type: inventory
rows: 1
layout:
4:
- red_item
items:
red_item:
material: 'RED_WOOL'
name: '点击继续'
actions:
commands:
- '[msg] 你点了下菜单!'
animate: 'green_item'
green_item:
material: 'LIME_WOOL'
name: '点击继续'
animate: 'blue_item'
blue_item:
material: 'BLUE_WOOL'
name: '点击继续'
# 无animate值,则回退到初始物品(red_item)
分析:
- 第
4槽位的物品从red_item开始。 - 一会儿后,会显示为
green_item,然后是blue_item。 - 由于
blue_item未定义animate,动画会回到red_item,重新开始循环。 - 命令
[msg] 你点了下菜单!会在点击任意一个动画帧物品时执行,因为该命令定义在了动画物品的源头red_item。
总结
| 行为 | 描述 |
|---|---|
已定义animate属性 | 当前物品将切换显示为该属性定义的物品。 |
动画末尾物品未定义animate属性 | 回到初始物品,循环动画。 |
| 运行命令 | 仅使用初始物品的运行命令。 |
| 其他属性(如描述信息、命令等) | 每个动画帧物品单独定义;除特别声明外,都仅改变外观。 |
实操建议
- 保持动画物品的简洁——最好仅定义
material、name或lore。 - 动画帧物品不要重复定义运行命令。
- 使用动画来提升视觉效果或反馈循环,例如脉冲颜色或指示活动。
长动画链
动画可根据需要缩短或增长。
5帧动画示例:
items:
frame1:
material: 'RED_WOOL'
name: '点我'
animate: 'frame2'
actions:
commands:
- '[msg] 已点击物品。'
frame2:
material: 'ORANGE_WOOL'
name: '点我'
animate: 'frame3'
frame3:
material: 'YELLOW_WOOL'
name: '点我'
animate: 'frame4'
frame4:
material: 'LIME_WOOL'
name: '点我'
animate: 'frame5'
frame5:
material: 'BLUE_WOOL'
name: '点我'
# 无animate值;动画回到frame1