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的坐标转换到世界坐标系中

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

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

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

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...