游戏中经常会用到一些变换:

游戏中武器和角色在一个layer上,为了效率,会考虑将bullet, effect和 PhysicsParticle分别放到不用的层上,对应的层上使用batchnode来提高效率

武器和PhysicsParticleLauncher(粒子发射器)绑定,发射的时候,会向PhysicsParticleLayer的武器相同的位置上生成一个物理粒子特效

会经常用到convertToNodeSpace和convertToWorldSpace转换坐标

我们加三个sprite,r0,r1,r2,

r0的父节点是layer, 父节点下坐标(0,0,100,100)

r1的父节点是r0,父节点下坐标(0,0,100,100)

r2的父节点是r1,父节点下坐标(0,0,100,20)

获得r2的世界坐标,两种方法----第一种方法,蛮好,懂原理,才知道这样也能获取世界坐标!!! 
     // 获得r2的世界坐标,两种方法
// 方法1:以r2坐标系为起点,向根节点(世界坐标)变换,坐标必须为(0,0)
Point p2world = r2->convertToWorldSpace(Point(, )); // 方法2:以r1坐标系为起点,向根节点(世界坐标)变换,坐标为r2在父节点r1内的坐标
p2world = r1->convertToWorldSpace(r2->getPosition()); // 获得r2在r0坐标系中的坐标
// convertToNodeSpace要传入的坐标为世界坐标
Point pt = r0->convertToNodeSpace(p2world);

convertToNodeSpace和convertToWorldSpace ---实际应用的更多相关文章

  1. Cocos坐标之convertToNodeSpace、convertToWorldSpace、convertToNodeSpaceAR、convertToWorldSpaceAR区别和用法

    convertToNodeSpace.convertToWorldSpace.convertToNodeSpaceAR.convertToWorldSpaceAR,在他们的下一层看到下面的注释: /* ...

  2. 【COCOS2DX-游戏开发之三一】之 坐标系(下) convertToNodeSpace和convertToWorldSpace

    游戏中常常会用到一些变换: 游戏中武器和角色在一个layer上,为了效率.会考虑将bullet, effect和 PhysicsParticle分别放到不用的层上,相应的层上使用batchnode来提 ...

  3. cocos2dx 举例说明 convertToNodeSpace 与 convertToWorldSpace 的使用

    convertToNodeSpace:把世界坐标转换到当前节点的本地坐标系中. //可以应用于判断子节点是否被点击,这时就需要把坐标从世界坐标系转换为父节点的坐标系. //当然大多数情况会用CCMen ...

  4. Cocos2dx坐标转换

    Cocos2dx坐标转换 这段时间加班有点猛,没有太多时间来写博客了,ok,继续完成任务: 前言 这里将会重点介绍四个函数: convertToNodeSpace convertToNodeSpace ...

  5. Coordinate System

    Coordinate System Introduction of Different Coordinate Systems Cartesian Coordinate System UI Coordi ...

  6. Cocos2d-x 详解坐标系统

    这篇博文将介绍一下在cocos2dx中的一些坐标系统概念: 一. (1) OpenGL坐标系 Cocos2D-x以OpenGL和OpenGL ES为基础,所以自然支持OpenGL坐标系.该坐标系原点在 ...

  7. cocos2dx中的坐标系统

    一. (1)OpenGL坐标系 Cocos2D-x以OpenGL和OpenGL ES为基础,所以自然支持OpenGL坐标系.该坐标系原点在屏幕左下角,x轴向右,y轴向上. (2)屏幕坐标系 屏幕坐标系 ...

  8. ocos2d-x 3.0坐标系详解--透彻篇 ---- convertToWorldSpace:把基于当前节点的本地坐标系下的坐标转换到世界坐标系中。

    convertToWorldSpace:把基于当前节点的本地坐标系下的坐标转换到世界坐标系中.重点说明:基于...   不一定要是真实的,  convertToWorldSpace 的结果也只是一个新 ...

  9. Quick-lua3.3之listview

    前言 listview列表,在游戏中非常常见,比如道具列表,玩家列表,排行榜等等.每个版本可能使用方法可能有些差别,但是大同小异,原理和用途都是那几种,设置方向,间隔等. 这里是quick-lua3. ...

随机推荐

  1. 函数式编程(九)——map,filter,reduce

    编程方法论: 面向过程:按照一个固定的流程去模拟解决问题的流程 函数式:编程语言定义的函数 + 数学意义的函数 y = 2*x + 1 函数用编程语言实现 def fun(x): return 2*x ...

  2. java连接mysql的过程

    今天突然心血来潮,想要用java连接mysql,记得以前是在vs2010的环境下用C#连接sql sever,其实他们的方法都差不多. 现在就可以简单的介绍下java如何连接mysql 第一步,设计m ...

  3. 包含jdk和nginx的基础镜像

    目的 制作一个基础镜像,包含jdk和nginx,这样要将java项目或一些前端页面做成容器,可以稍作修改引用该镜像. Dockerfile FROM alpine:3.8 ENV \ LANG=C.U ...

  4. libevent-2.0.so.5 (安装MEMCACHED问题)

    今天安装memcache启动服务时出现 error while loading shared libraries: libevent-2.0.so.5: cannot open shared obje ...

  5. 安装完office后 在组件服务里DCOM配置中找不到

    这个主要是64位系统的问题,excel是32位的组件,所以在正常的系统组件服务里是看不到的 可以通过在运行里面输入 comexp.msc -32 来打开32位的组件服务,在里就能看到excel组件了

  6. Unity做AR

    Unity做AR呢这里借助了高通的AR包 这里是视频教程  http://www.tudou.com/programs/view/dnvEbIubNzI/ 这里是结果演示  http://www.tu ...

  7. javascript 迭代与递归

    <script type="text/javascript"> // //原生js // window.onload = function(){ // var btn ...

  8. sublime js头部代码多行注释

    安装 DocBlockr 插件,在写完function()的时候,在函数上面输入: /** + tab键(或回车键,Atom里不用另外安装插件,直接在函数的上面输入:/** + 回车键  即可).

  9. VirtualBox设置共享文件夹

    前提是已经正确安装增强工具,在安装增强工具时,没有faile的,全部done 1.添加共享文件夹(已经在lmg下创建过目录 /mnt/bdshare ) sudo mount -t vboxsf Ba ...

  10. POJ - 1836 Alignment (动态规划)

    https://vjudge.net/problem/POJ-1836 题意 求最少删除的数,使序列中任意一个位置的数的某一边都是递减的. 分析 任意一个位置的数的某一边都是递减的,就是说对于数h[i ...