实现:点击地图来判断是否创建武器
import ScriptBase from './ScriptBase'
import ConfigMgr from './ConfigMgr' //用于获取脚本数据
import TiledMapCtrl from './TiledMapCtrl' //用于强转
const {ccclass, property} = cc._decorator;
@ccclass
export default class TouchLayer extends ScriptBase {
onInit () {
//获取地图脚本(ConfigMgr拿到的是基类类型,要强转后才能拿到派生类的接口)
//let tiledMapCtrl:ScriptBase = ConfigMgr.getInstance().getData('TiledMap');
let tiledMapCtrl:TiledMapCtrl = (ConfigMgr.getInstance().getData('TiledMap')) as TiledMapCtrl;
//接收点击事件
this.node.on('touchstart',(event)=>{
//拿到触摸点坐标
let clickPos:cc.Vec2 = event.getLocation();
//把触摸点转换成格子坐标
let clickTile:cc.Vec2 = tiledMapCtrl.getTiledByPos(clickPos);
//判断是否可以创建武器(更多的是地图的操作,所以在地图类中写接口)
//如果点击的格子是路径层,不创建武器
if(tiledMapCtrl.isClickLayer('path',clickTile)){
console.log('不创建武器');
}
})
}
}