cocos creator从零开发2048(11)-游戏失败处理

Canvas节点下新建空节点并重命名为panelFailed,挂载Widget组件并勾选TopRightBottomLeft并把这些属性都设置为0,挂载BlockInputEvents组件。

panelFailed节点

panelFailed节点下新建Sprite (单色)并重命名为bgSize设置为500x500Color设置为#43C1BE

panelFailed节点下新建Label (文字)Position Y 设置为200String输入游戏失败了,再来一次吧!

panelFailed节点下新建Button (按钮)并重命名为btnOkbtnOk/Background/Label属性String输入好的

ui完成

编辑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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!