跳到主要内容

动画

物品可以在面板中通过循环不同的外观,例如更改颜色或材料来呈现动画。这可以让你的菜单变得更加生动、富有趣味。

要创建动画,需要在物品中定义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)

分析:

  1. 4槽位的物品从red_item开始。
  2. 一会儿后,会显示为green_item,然后是blue_item
  3. 由于blue_item未定义animate,动画会回到red_item,重新开始循环。
  4. 命令[msg] 你点了下菜单!会在点击任意一个动画帧物品时执行,因为该命令定义在了动画物品的源头red_item

总结

行为描述
已定义animate属性当前物品将切换显示为该属性定义的物品。
动画末尾物品未定义animate属性回到初始物品,循环动画。
运行命令仅使用初始物品的运行命令。
其他属性(如描述信息、命令等)每个动画帧物品单独定义;除特别声明外,都仅改变外观。

实操建议

  • 保持动画物品的简洁——最好仅定义materialnamelore
  • 动画帧物品不要重复定义运行命令。
  • 使用动画来提升视觉效果或反馈循环,例如脉冲颜色或指示活动。

长动画链

动画可根据需要缩短或增长。

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