FreeSpin 流程 Action
1. 注册 freeSpinAction
在生成的关卡脚本文件中,打开开关,即可自行注册 freeSpinAction 对象:
this.machineConfig.needFreeGameAction = true;
2. 开始 freeSpin 流程
预留接口:onEnterFreeSpin
用于在关卡脚本中记录 freeSpin 玩法中的一些自定义状态。
流程步骤:
调整节奏:弹出开始弹板前的 delayTime
javascriptmachineConfig.delayBeforeFreeSpinBeginPanelClose
弹出开始 freeSpin 弹板
- 弹板 ccb:
machineConfig.freespinBeginPanelCCB
- 音效:
machineConfig.freespinBeginPanelSound
- 自动关闭等待时长:
machineConfig.freespinBeginPanelAutoCloseDelayTime
- 自定义样式:
machineScene.refreshFreeSpinBeginPanel()
- 弹板 ccb:
调整节奏:弹板关闭后的 delayTime
javascriptmachineConfig.delayAfterFreeSpinBeginPanelClose
过场动画(某些关卡需求会插入)
- 动画 ccb:
machineConfig.freeSpinBeginTransferAnimCCB
- 音效:
machineConfig.freeSpinBeginTransferSound
- 动画 ccb:
播放 freeSpin 背景音乐
javascriptmachineConfig.freeSpinBgMusic
调整节奏:过场动画时长,也可用于在轮盘、logo、计数器变状态前的 delayTime
javascriptmachineConfig.freeSpinBeginTransferAnimTime
轮盘、标题变色,调用 machineScene 中的接口
- 方法:
machineScene.onFreeSpinBeginWheelStyleChange()
- 方法:
调整节奏:显示计数器之前的 delayTime
javascriptthis.freeSpinAction.setBeforeShowFreeSpinCounterDelayTime(delayTime)
显示计数器
计数器格式要求
1. spinUI 处常规展示:当前次数/总次数 的形式
作为单独的 ccb 节点:
- ccb 节点命名:
freeSpinCounter
,需有 appear、disappear、add 动画 - 当前次数 label 节点命名:
_curCountLabel
- 总次数 label 节点命名:
_totalCountLabel
2. 只显示剩余次数,又细分为两种情况:
(1) 纯粹单独的 freeSpin 剩余次数展示(不与其他节点相互掺杂在一起)
- ccb 节点命名:
freeSpinCounter
,需有 appear、disappear、add 动画 - 剩余次数 label 节点命名:
_leftCountLabel
(2) 通过其他节点的动画切换到展示剩余次数
可使用上述方式,只是将切换的动画名对应设置为 appear、disappear。
也可以选择使用自定义接口,在轮盘变色的接口中进行同时切换。切换时需要手动调用 freeSpinAction 中更新次数展示的接口:
this.freeSpinAction.updateFreeSpinCounter()
调整节奏:显示计数器之后,进入 freeSpin 前的 delayTime
javascriptthis.freeSpinAction.setAfterShowFreeSpinCounterDelayTime(delayTime)
流程控制,进入 freespin
3. Retrigger 再次触发 freeSpin 流程
新增配置:
machineConfig.freeSpinRetriggerPanelAutoCloseDelayTime
machineConfig.retriggerFreeSpinUpdateDelayTime
machineConfig.retriggerFreeSpinAddAnimTime
原有配置:
machineConfig.delayBeforeFreeSpinRetriggerPanelClose
machineConfig.delayAfterFreeSpinRetriggerPanelClose
machineConfig.freespinRetiggerPanelCCB
machineConfig.freespinRetiggerPanelSound
4. 结束 freeSpin 流程
预留接口:onExitFreeSpin
在弹板流程前,在关卡中清除状态等操作。
流程步骤:
调整节奏:弹出结束弹板前的 delayTime
javascriptmachineConfig.delayBeforeFreeSpinEndPanelClose
弹出结束 freeSpin 弹板、停止 freeSpin 的背景音乐
弹板配置:
- 有赢钱:
machineConfig.freespinEndPanelCCB
- 无赢钱:
machineConfig.freespinLuckyPanelCCB
弹板音效:
- 有赢钱:
machineConfig.freeSpinEndPanelSound
- 无赢钱:
machineConfig.freespinLuckyPanelSound
自动关闭弹板等待时长:
- 有赢钱:
machineConfig.freeSpinEndPanelAutoCloseDelayTime
- 无赢钱:
machineConfig.freeSpinLuckyPanelAutoCloseDelayTime
自定义样式:
- 有赢钱:
machineScene.refreshFreeSpinEndPanel()
- 无赢钱:
machineScene.refreshFreeSpinEndLuckyPanel()
- 有赢钱:
调整节奏:弹板关闭后的 delayTime
javascriptmachineConfig.delayAfterFreeSpinEndPanelClose
轮盘、标题切换为 base 状态,调用 machineScene 中的接口
- 接口:
machineScene.onFreeSpinEndWheelStyleChange()
- 接口:
调整节奏:隐藏计数器之前的 delayTime
javascriptthis.freeSpinAction.setBeforeHideFreeSpinCounterDelayTime(delayTime)
隐藏计数器
与开始 freeSpin 时显示计数器的用法一致,只是这里不需要再调用 update 方法更新展示次数。如果使用
freeSpinCounter
命名节点的话,将隐藏的动画命名为disappear
即可。调整节奏:隐藏计数器之后,结束 freeSpin 前的 delayTime
javascriptthis.freeSpinAction.setAfterHideFreeSpinCounterDelayTime(delayTime)
流程控制,结束 freespin