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()
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。