CocosCreator让一个物体跟随鼠标移动(两种方式 本地坐标系和世界坐标系)

在 Cocos Creator 3.x 游戏运行时显示的画布大小就是屏幕区域,屏幕坐标是从画布的左下角为原点开始计算

在 Creator 3.x 里,屏幕和 UI 是完全区分开的,用户可以在没有 UI 的情况下点击屏幕获取触点信息。因此,获取屏幕触点,是通过 event.getLocation() 。而希望同样按照 Creator 2D 的方式获取"屏幕触点"坐标,则可以通过 event.getUILocation() 的方式获取。

本地坐标系和世界坐标系的区别

  1. 世界坐标的中心点(也称之为原点)是节点在场景下创建的,位于节点树最外层并且它的 positon 属性值全部都是 0的节点所处的位置,就是世界坐标的中心点。
  2. 本地坐标是相对于父节点的偏移

event.getUILocation() 获取到的触点信息,也可以用来直接设置 UI 元素的世界坐标

javascript 复制代码
  //动态设置图片
  @property({ type: Node })
  public moveImg: Node = null;
 
  let posx = event.getUILocation();
  console.log("xxsdds", posx);
  this.moveImg.setWorldPosition(posx.x, posx.y, 0);

根据本地坐标系设置位置:

javascript 复制代码
  onLoad() {
    let imgW = this.moveImg.getComponent(UITransform).width / 2;
    let imgH = this.moveImg.getComponent(UITransform).height / 2;
    console.log("xxsddsrela", imgW, imgH);
    //首先获取鼠标的位置  如果想要监听到全局的鼠标移动,那么就应该把ts挂载到canvas上
    this.node.on(
      Node.EventType.MOUSE_MOVE,
      (event: EventTouch) => {
        //获取到鼠标的位置
        //拿到图片的节点
        //将鼠标位置挂载到节点上
        //获取鼠标的坐标系(全局鼠标事件)
        let posx = event.getLocation();
        let pos = new Vec3(posx.x - imgW, posx.y - imgH, 0);
        let uinode = this.node.getComponent(UITransform);
        // 鼠标的位置相对于图片的本地坐标
        //convertToNodeSpaceAR:将一个 UI 节点世界坐标系下点转换到另一个 UI 节点 (局部) 空间坐标系
        let rela = uinode.convertToNodeSpaceAR(pos);
        this.moveImg.position = rela;
      },
      this
    );
  }
相关推荐
胡童嘉5 天前
长沙烈焰鸟网络科技有限公司实习day13日记
功能测试·学习·职场和发展·游戏引擎·cocos2d
神秘的土鸡8 天前
【CS创世SD NAND征文】为无人机打造可靠数据仓:工业级存储芯片CSNP32GCR01-AOW在飞控系统中的应用实践
嵌入式硬件·游戏引擎·无人机·cocos2d·雷龙
小时候的阳光22 天前
Cocos Creator 和 Unity 3D 编辑界面字体样式大小调整
unity·cocos2d·字体大小
mit6.82423 天前
[无人机sdk] Open Protocol | 协议包构造&验证
游戏引擎·无人机·cocos2d
锦瑟弦音24 天前
2048游戏开发笔记4 & 音效 cocos3.8.7
笔记·typescript·cocos2d
FairGuard手游加固1 个月前
Cocos资源加密方案解析
安全·游戏·cocos2d
应用市场1 个月前
无人机编队飞行原理与Python仿真实现完整指南
python·无人机·cocos2d
云卓SKYDROID1 个月前
无人机中继器模式技术对比
人工智能·游戏引擎·php·无人机·cocos2d·高科技·云卓科技
重生之我在永职2 个月前
cocos 添加背景,帧动画,贴图
cocos2d
山外有山a2 个月前
《黑神话:悟空》核心攻略指南 如何在mac苹果电脑运行《黑神话:悟空》
macos·cocos2d·改行学it