cocos creator从零开发2048(11)-游戏失败处理
Canvas节点下新建空节点并重命名为panelFailed,挂载Widget组件并勾选Top、Right、Bottom、Left并把这些属性都设置为0,挂载BlockInputEvents组件。

panelFailed节点下新建Sprite (单色)并重命名为bg,Size设置为500x500,Color设置为#43C1BE。
panelFailed节点下新建Label (文字),Position Y 设置为200 ,String输入游戏失败了,再来一次吧!。
panelFailed节点下新建Button (按钮)并重命名为btnOk。btnOk/Background/Label属性String输入好的。

编辑scripts/Game.ts,添加initPanelFailed方法初始化失败面板。
private _panelFailed: cc.Node
private initPanelFailed() {
this._panelFailed = this.node.getChildByName('panelFailed')
this._panelFailed.active = false
this._panelFailed.getChildByName('btnOk').on('click', () => cc.game.restart())
}
修改init方法,调用initPanelFailed方法。
btnRestart.on('click', () => cc.game.restart())
this.initPanelFailed()
添加checkFail方法检查游戏是否失败。
private checkFail() {
const gridList = [this.grids, this.gridsReversed]
for (const grids of gridList) {
for (const items of grids) {
for (let i = 1; i < items.length; i++) {
if (!items[i].num || !items[i - 1].num || items[i].num == items[i - 1].num) return
}
}
}
this._moving = true
this.scheduleOnce(() => this._panelFailed.active = true, 1)
}
修改onMoveAfter方法,调用checkFail方法。
this.randGrid()
this.checkFail()
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu