"use strict"; cc._RF.push(module, '51a50mHu8JFiqErYuzvL3c0', 'cmp.adventure.map.coll'); // Scripts/mod/pve/adventure/cmp/cmp.adventure.map.coll.js "use strict"; var ADVCT = require("adventure_controller"); //处理方块边界碰撞问题 cc.Class({ "extends": cc.Component, properties: { Left: { "default": null, type: cc.Node }, Right: { "default": null, type: cc.Node }, Ups: { "default": null, type: cc.Node }, Downs: { "default": null, type: cc.Node } }, // LIFE-CYCLE CALLBACKS: onLoad: function onLoad() { this.index = null; }, start: function start() {}, upCollision: function upCollision(index) { var data = ADVCT.getInstance().getRoomDataByIndex(index); var xy = data.room_id[0]; this.checkFogPath(xy); }, //检测解锁迷雾路径 checkFogPath: function checkFogPath(path) { //四面解锁的一定也是解锁的,所以不需要cloud //边缘地带的需要本身未解锁才能确认需不需要cloud var x = path.x; var y = path.y; var is_left = false; var is_right = false; var is_up = false; var is_down = false; var limit_index = 0; var up = [x, y + 1]; var updata = ADVCT.getInstance().getRoomDataByXY(up[0], up[1]); if (updata && updata.lock == 0) { limit_index++; is_up = true; } var down = [x, y - 1]; var dodata = ADVCT.getInstance().getRoomDataByXY(down[0], down[1]); if (dodata && dodata.lock == 0) { limit_index++; is_down = true; } var left = [x - 1, y]; var ldata = ADVCT.getInstance().getRoomDataByXY(left[0], left[1]); if (ldata && ldata.lock == 0) { limit_index++; is_left = true; } var right = [x + 1, y]; var rdata = ADVCT.getInstance().getRoomDataByXY(right[0], right[1]); if (rdata && rdata.lock == 0) { limit_index++; is_right = true; } if (limit_index == 4) { //四面皆有 return; } this.Ups.active = is_up; this.Downs.active = is_down; this.Left.active = is_left; this.Right.active = is_right; } // update (dt) {}, }); cc._RF.pop();