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

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

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

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

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...