Cocos2dx:如何实现精灵的坐标转换,ConvertToNodeSpace、ConvertToWorldSpace两个函数的使用及注意事项
创始人
2024-05-02 15:07:58
0

Cocos2dx:如何实现精灵的坐标转换,ConvertToNodeSpace、ConvertToWorldSpace两个函数的使用及注意事项

设备/引擎:Mac(11.6)/cocos

开发工具:Xcode(13.0)

开发需求:根据项目需求来转换精灵的坐标

这是一个拉票置顶>~<
开始正文之前先给自己的2022做个总结,顺便也拉个票~
下一个365天,要继续充满热爱~
2022即将结束,这一年来自己已经记不清自己的创作历程,看到年度创作报告的时候,才发现自己做了这么多了,才发觉创作分享已成了自己的一个习惯。回想起来自己从开始的简单创作分享,到现在的分享日常,更多的是对所做的事情的热爱,我也将会将这份热爱坚持下去……也希望能帮助到每一位看到的同学,祝各位同学年富一年~~~

最后也希望大家点这里投出宝贵的一票,您的每一分都是对我的支持与鼓励

开始正文
1.什么时候需要对精灵坐标进行转换
一般当两个精灵不属于同一父类的时候,而两个精灵间又有交互作用,这时可能就需要考虑坐标转换了,例如你在项目中需要将A精灵放到B精灵上,而两个精灵又不属于一个父类,这时就需要将A的坐标转换到B所在的坐标系上……

2.ConvertToNodeSpace、ConvertToWorldSpace
1.两个函数都是以参照物的左下角为坐标原点,向右向上创建坐标系;
2.ConvertToNodeSpace:所获得的坐标是相对于参照物的坐标;
3.ConvertToWorldSpace:所获得的坐标是相对于参照物所在的坐标系中的坐标;
4.两个函数还各有一个AR版本ConvertToNodeSpaceAR、ConvertToWorldSpaceAR:唯一的区别就是原点为精灵节点的锚点而不是所在的坐标系原点

注:关键点就是找准坐标系的原点位置,到底是相对于世界坐标系的原点(一般为屏幕左下角),还是精灵节点坐标系的原点(一般为精灵节点的左下角)。

3.运用
写法比较简单如下:

CCPoint pos = spr->convertToNodeSpace(pos);

pos为你操作的精灵A的坐标位置,spr是你要转换到的精灵B的父类(也就是B的坐标系)

CCPoint _sprPosInWorld = this->convertToWorldSpace(_itemSpr->getPosition());

这个比较好理解,将精灵_itemSpr的坐标转换到世界坐标系中

整体来说这两个函数并不难理解,重点是根据自身项目需求来找到更合适进行使用!

希望能给大家带来帮助!!!有什么问题需要讨论的可以评论私信欢迎讨论~

最后刷到的同学别忘了点这里给投个票啊~~~,多谢多谢~

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...