最近搜索

第13讲 检查胜利1

浏览:497
管理员 2021-09-07 16:53

game_layer.js添加checkWin方法

    checkWin() {
        for (let i in this.puzzleCellList) {
            let puzzle = this.puzzleCellList[i];
            if (puzzle.getComponent('puzzle_cell').getIsOnMap == false) {
                return;
            }
            //6个碎片都在 顶部地图上面
            //这时候检查,每个点的是否都恰当
            //得到一个新的列表
            let list = [];
            for (let i in this.topMapCellList) {
                let cell = this.topMapCellList[i];
                //找到离这个点最近的  碎片
                let minDis = 10000;
                let data = undefined;
                for (let j in this.puzzleCellList) {
                    let puzzle = this.puzzleCellList[j];
                    let dis = puzzle.position.sub(cell.position).mag();//取得 2点之间的距离 这个方法 过时了
                    if (dis < minDis) {
                        minDis = dis;
                        data = puzzle.getComponent("puzzle_cell").getPuzzleData();
                    }
                }
                list.push(data);
            }
            //得到一个新的list列表
            console.log("new_list:"+JSON.stringify(list));
        }

    }


在puzzleCellTouchEnd这个地方也调用一下checkWin方法

image.png



修改puzzle_cell.jsinit代码,  添加一个方法getPuzzleData


设置data

image.png

  getPuzzleData(){
        return this.data;
    }


这个方法game_layer.js会调用 。





我们在这里输出一下,新的list看看分析一下。

下一步管理器计算是否符合地图规则。






联系站长

站长微信:xiaomao0055

站长QQ:14496453