cocosCreator 节点坐标和世界坐标的转换

2023-10-27

问题描述:同一个层上的不同节点下的元素移动。

 在C这个层上面有两个节点A和B,现在我想把A下的一个临时创建的节点移动到B下

 

这个时候,第一想到的是,获取两个创建的节点的坐标,然后cc.Move

 

但是实际的效果不是这样的,元素都不知道移动到那里去了?

因为,节点的坐标都是相对的。就是在A下新建一个节点,他的坐标就是cc.v2(0,0);

转换世界坐标

整体思路就是

1、获取双方的世界坐标

2、转换为统一的节点的相对坐标

3、设置坐标

 下面是坐标转换code

/**
 * 得到一个节点的世界坐标
 * node的原点在中心
 * @param {*} node 
 */
function localConvertWorldPointAR(node) {
    if (node) {
        return node.convertToWorldSpaceAR(cc.v2(0, 0));
    }
    return null;
}
 
/**
 * 得到一个节点的世界坐标
 * node的原点在左下边
 * @param {*} node 
 */
function localConvertWorldPoint(node) {
    if (node) {
        return node.convertToWorldSpace(cc.v2(0, 0));
    }
    return null;
}
 
/**
 * 把一个世界坐标的点,转换到某个节点下的坐标
 * 原点在node中心
 * @param {*} node 
 * @param {*} worldPoint 
 */
function worldConvertLocalPointAR(node, worldPoint) {
    if (node) {
        return node.convertToNodeSpaceAR(worldPoint);
    }
    return null;
}
 
/**
 * 把一个世界坐标的点,转换到某个节点下的坐标
 * 原点在node左下角
 * @param {*} node 
 * @param {*} worldPoint 
 */
function worldConvertLocalPoint(node, worldPoint) {
    if (node) {
        return node.convertToNodeSpace(worldPoint);
    }
    return null;
}
/**
 *  * 把一个节点的本地坐标转到另一个节点的本地坐标下
 * @param {*} node 
 * @param {*} targetNode 
 */
function convetOtherNodeSpace(node, targetNode) {
    if (!node || !targetNode) {
        return null;
    }
    //先转成世界坐标
    let worldPoint = localConvertWorldPoint(node);
    return worldConvertLocalPoint(targetNode, worldPoint);
}
 
/**
 *  * 把一个节点的本地坐标转到另一个节点的本地坐标下
 * @param {*} node 
 * @param {*} targetNode 
 */
function convetOtherNodeSpaceAR(node, targetNode) {
    if (!node || !targetNode) {
        return null;
    }
    //先转成世界坐标
    let worldPoint = localConvertWorldPointAR(node);
    return worldConvertLocalPointAR(targetNode, worldPoint);
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cocosCreator 节点坐标和世界坐标的转换 的相关文章

  • CocosCreator学习1-按钮点击

    Cocos Creator小白学习 实现button点击事件 关于cocos creator 本人就是小白一个 xff0c 什么都不会 xff0c 只能慢慢从头开始摸索着来 xff0c 自己也希望能够在写自己的学习过程中 xff0c 能够给
  • CocosCreator的节点显示和隐藏

    隐藏和显示有两种方式 xff1a 1 禁止节点node的运行 xff0c 方法是x node active 61 false 此时隐藏了节点 xff0c 且节点不再运行 恢复节点正常运行 xff0c x node active 61 tru
  • CocosCreator在电脑Web打印vConsole日志的问题

    忘了什么时候开始 Web端的日志打印的文件输入信息全是vconsole min js文件 很纠结啊有木有 完全不知道日志的出处 日志输入如以下图片 官方还没有给出对于这个问题的配置是怎么样解决的 所以我们自己搞定 我们进入CocosCrea
  • cocosCreator 节点坐标和世界坐标的转换

    问题描述 同一个层上的不同节点下的元素移动 在C这个层上面有两个节点A和B 现在我想把A下的一个临时创建的节点移动到B下 这个时候 第一想到的是 获取两个创建的节点的坐标 然后cc Move 但是实际的效果不是这样的 元素都不知道移动到那里
  • CocosCreator自动化绑定jsb

    与之前的cocos2dx js自定义js binding不同 这次用的是Cocos2dx里的自动绑定技术 更加的简单 高效 规整以及方便得多 而且之前的手动写文件不能适应更新后的CocosCreator版本的情况 环境配置 JDK NDK
  • CocosCreator之KUOKUO带你做小小PK(二)Boss血条与站桩挨打

    本次引擎2 0 5 编辑工具VSCode 目标 小小PK 二 血条素材 好了 我们接着上个教程 上一个教程我们做了 移动与跳跃还有攻击 但是只有主角一人是不是很尬 接下来让我们放入血条 放入Boss 血条的模式改为横向填充 然后把血条x方向
  • CocosCreator3.8研究笔记(一)windows环境安装配置

    一 安装Cocos 编辑器 1 下载Cocos Dashboard安装文件 Cocos 官方网站Cocos Dashboard下载地址 https www cocos com creator download9 下载完成后会得到CocosD
  • CocosCreator3.8研究笔记(十四)CocosCreator 资源管理Asset Manager

    在游戏的开发过程中 需要使用到大量的图片 音频等资源来 从而带来管理上的困难 Asset Manager 资源管理模块具备加载资源 查找资源 销毁资源 缓存资源 Asset Bundle 等功能 帮助开发者管理其资源的使用 一 资源的加载
  • Cocos Creator资源管理AssetManager细说一二

    关于AssetManager Asset Manager 是 Creator 在 v2 4 新推出的资源管理器 用于替代之前的 cc loader 新的 Asset Manager 资源管理模块具备加载资源 查找资源 销毁资源 缓存资源 A
  • Rot.js 随机地牢,迷宫地图生成

    js 插件随机地牢 迷宫地图生成 插件git https github com ondras rot js tree master dist 使用 1 我们的游戏是在网页内进行的 一个基本的 HTML 文件就足够了
  • 【CocosCreator入门】CocosCreator组件

    Cocos Creator 是一款流行的游戏开发引擎 具有丰富的组件和工具 其中Spine 是一个基于骨骼系统的 2D 动画工具 它可以让开发者通过对骨架和关键帧的调整来制作出更加自然 流畅的动画效果 Cocos Creator 支持使用
  • tf好朋友之matplotlib的使用——坐标能见度设置

    tf好朋友之matplotlib的使用 坐标能见度设置 坐标能见度设置常用函数 set bbox方法 应用示例 坐标太多挡住其它标记 挡住彼此怎么办 那必然是 给他们一个透明度啊 坐标能见度设置常用函数 set bbox方法 对坐标进行透明
  • CocosCreator ios 使用sdl库找不到arm64指令集

    关于sdl如何打包成ios库 android库的问题 之后会有相关文章介绍 现在先说一下CocosCreator在使用xcode运行过程中 会报的一个错 Undefined symbols for architecture arm64的错误
  • Cocos Creator Android打包 apk

    文章目录 1 引言 2 配置打包环境 2 1 下载Java SDK JDK 2 2 下载NDK 3 配置原生发布环境路径 4 打包发布原生平台 5 构建原生工程 6 通过编译器去编译和运行 7 总述 8 结束语 1 引言 今天事情不是很多抽
  • cocos cretor shader effect-the book of shader-4.二维矩阵

    2D Matrices 二维矩阵 前面章节 TheBookofShader开始 Shaping functions 造型函数 Color 颜色 Shapes 形状 平移 之前的章节我们学习了如何制作一些图形 而如何移动它们的技巧则是借助移动
  • TypeScript 自定义数组排序

    TypeScript 自定义数组排序 前言 代码 基本原理 基本类型排序 复杂类型排序 前言 对列表进行排序 根据自定义规则 代码 基本原理 sort使用属性相减 a b 获取一个基本类型 1 0 1 如果小于0则将元素放到前面 如果大于0
  • cocos creator v3.6版本使用Intersection2D模块的circleCircle方法

    在cocos creator v3版本中Intersection2D模块的circleCircle方法可以用来检测两个圆形是否相交 该方法可以实现的功能有 cocos creator吸铁石实现 cocos creator物体在固定位置吸附
  • cocosCreator 之 ScrollView

    版本 3 4 0 参考 ScrollView组件 简介 ScrollView组件作为滚动容器来使用 它的实现通过ScrollBar组件来展示内容的位置和Mask组件显示指定区域 来保证有限的区域内显示更多的内容 它的构成部分 ScrollB
  • 【cc3.x】顶点着色器和片元着色器小记

    cc3 x cocos creator3 x 的着色器demo有点少 而且讲的不是很清晰 我这种业余自学小白学的真的很艰难 不过好赖算是啃的差不多了 所以有了这则小记 权当备忘录了 首先顶点着色器 上一段代码 CCProgram vs pr
  • CocosCreator用git版本控制时meta文件的冲突解决方法

    我们在多人进行CocosCreator开发时 需要对CCC的meta文件进行提交 meta文件里有CCC编辑器唯一识别的uuid 这个uuid是CCC编辑器对文件识别的唯一标识 如果我们不提交 会造成各个程序员电脑之间的CCC自动生成的uu

随机推荐

  • kettle界面语言修改成中文后,重启报错

    今天在设置kettle的界面时 想看看中文是什么样子的 于是就把如图的地方都改成了中文 重启后 kettle启不来了一直报错 java lang ArrayIndexOutOfBoundsException 5 at org pentaho
  • 内网穿透之我用过的

    花生壳 https hsk oray com ngrok https ngrok com ngrok http 3000 natapp https natapp cn natapp authtoken 我的authtoken
  • 常见的操作系统介绍

    一 计算机资源 计算机资源分为两部分 硬件资源 软件资源 硬件 看得见摸得着的设备 软件 一般由研发工程师开发的一些程序 一般会称之为应用软件 问题 为什么在键盘上敲键盘会在屏幕上显示呢 键盘 硬件 gt 驱动 键盘驱动软件 gt 操作系统
  • json数据和对象的区别

    json数据格式和对象的区别 转自https blog csdn net weixin 44721376 article details 115704536 1 JSON JSON 是一种语法 用来序列化对象 数组 数值 字符串 布尔值和
  • (一)VTK 转换 STL 为 PLY 格式,PCL读取PLY格式

    简介 由于PLY1 12版本IO模块提供了PCD和PLY两种格式的读取接口 因此需要用VTK进行格式转换 完成STL到PLY格式的转换 或掩码图像到PLY格式的转换 然后用PCL进行读取并进行处理 1 VTK 将STL转换为 PLY格式 v
  • mac常用快捷键

    文章目录 一 Mac 1 系统 2 截图 3 切换 4 应用程序中 1 最小化窗口 2 隐藏窗口 3 关闭窗口 4 退出程序 5 全屏 6 文件夹 5 浏览器 6 文本处理 二 VS Code 三 IDEA 四 Excel 一 Mac 1
  • 解决Windows系统缺少hhctrl.ocx文件无法运行程序问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个hhctrl
  • hibernate 总结

    hibernate 总结 Hibernate框架的总结 hibernate 简介 hibernate是一个开源框架 它是对象关联关系映射的框架 它对JDBC做了轻量级的封装 而我们java程序员可以使用 面向对象的思想来操纵数据库 提高生产
  • java代码规范插件之P3C安装及基础用法

    P3C插件主要是对今年发布的 阿里巴巴 Java 开发规约 的一个延伸 它以一个 IDE 的插件存在 可以自动对手册中的 Java 不规范的问题进行提示 现在主要支持 IDEA Eclipse Android Studio 是基于 IDEA
  • Charles web抓包

    首先打开Charles调试 如果关闭web端 如图所示 前面什么也没有 抓取浏览器数据包 一 打开Charles在Help里安装证书 二 点击安装证书 三 存储位置选择本地计算机 四 点击将所有的证书都放入下列存储 五 点击浏览 点击受信任
  • Opencv: 将 YUV 格式的图片转化成 JPG 保存

    昨天刚和同事一起去采集一些场地数据 用板子拍摄然后实时传到电脑上 得到的是 NV21 的 YUV 格式的照片 然后暂时需要将他们批量处理成 jpg 的文件方便在 windows 上面看 参考同事的代码 写了一个 c 的脚本 简简单单的一个程
  • 如何在Windows Subsystem for Android 中取得 root 权限

    都已经让手机取得root权限了 是时候去取得安卓子系统的root权限了 一 准备 首先确保你拥有8GB以上的内存 并且满足Windows 11的最低硬件需求 由于Windows Subsystem for Android 只兼容 Windo
  • python清洗数据 food ounces animal_pandas学习笔记 - 常见的数据处理方式

    1 缺失值处理 拉格朗日插值法 input file数据文件内容 存在部分缺失值 from scipy interpolate importlagrangeimportpandas as pd import numpy as np inpu
  • 【华为OD机试真题 JAVA】找城市

    JS版 华为OD机试真题 JS 找城市 标题 找城市 时间限制 1秒 内存限制 65536K 语言限制 不限 一张地图上有n个城市 城市和城市之间有且只有一条道路相连 要么直接相连 要么通过其它城市中转相连 可中转一次或多次 城市与城市之间
  • linux中常用目录的作用

    Linux目录和Windows目录有着很大的不同 Linux目录类似一个树 最顶层是其根目录 如下图 bin 二进制可执行命令 例如ls cat mkdir dev 设备特殊文件 所有linux的外围设备 etc 系统管理和配置文件 etc
  • Apache HTTPD 多后缀解析漏洞

    Apache HTTPD 多后缀解析漏洞 一 环境搭建 二 漏洞原理 三 漏洞复现 一 环境搭建 如下介绍kali搭建的教程 cd vulhub httpd apache parsing vulnerability 进入指定环境 docke
  • {青少年CTF} Markdown 详解

    用一个markdown编辑器打开就能看到 这边推荐Typora qsnctf 6dd6d3b1 e671 4555 828b a64caf7e39ef 溜了溜了
  • java自学笔记13:简易扑克牌游戏

    综合练习 洗牌发牌Easy版 功能描述 一 创建一副扑克牌 包括四种花色 黑桃 红桃 梅花 方片 十三中点数 2 10 J Q K A 不考虑大小王 二 创建两名玩家 玩家至少要有ID 姓名 手牌等属性 手牌为扑克牌的集合 三 洗牌 将之前
  • 图像分类、目标检测、语义分割、实例分割和全景分割的区别

    计算机视觉的任务很多 有图像分类 目标检测 语义分割 实例分割和全景分割等 那它们的区别是什么呢 1 Image Classification 图像分类 图像分类 下图左 就是对图像判断出所属的分类 比如在学习分类中数据集有人 person
  • cocosCreator 节点坐标和世界坐标的转换

    问题描述 同一个层上的不同节点下的元素移动 在C这个层上面有两个节点A和B 现在我想把A下的一个临时创建的节点移动到B下 这个时候 第一想到的是 获取两个创建的节点的坐标 然后cc Move 但是实际的效果不是这样的 元素都不知道移动到那里