coco2d-x convertToWorldSpace介绍

看泰然网的关于坐标系的介绍的时候(http://www.tairan.com/archives/5739/)对convertToWorldSpace的解释的时候很不理解博主为什么要那么解释,一开始让我很费解,我觉得可以这样解释:解释convertToWorldSpace可以吧他的例子改一下,如下:

auto *sprite1 = Sprite::create("HelloWorld.png");
    sprite1->setPosition(ccp(20,40));
    sprite1->setAnchorPoint(ccp(0,0));
    this->addChild(sprite1);  //此时添加到的是世界坐标系,也就是OpenGL坐标系

    auto *sprite2 = Sprite::create("HelloWorld.png");
    sprite2->setPosition(ccp(-5,-20));
    sprite2->setAnchorPoint(ccp(1,1));
    sprite1->addChild(sprite2); //修改这样:把sprite2加到sprite1上!!!!

    //将 sprite2 这个节点的坐标ccp(-5,-20) 转换为 sprite1节点 下的本地(节点)坐标系统的 位置坐标
    Point point1 = sprite1->convertToNodeSpace(sprite2->getPosition());

    //将 sprite2 这个节点的坐标ccp(-5,-20) 转换为 sprite1节点 下的世界坐标系统的 位置坐标
    Point point2 = sprite1->convertToWorldSpace(sprite2->getPosition());

    log("position = (%f,%f)",point1.x,point1.y);
    log("position = (%f,%f)",point2.x,point2.y);

那么输出的结果就会是:

运行结果:

Cocos2d: position = (-5.000000,-20.000000)//这是一定的,本来就是父节点。
Cocos2d: position = (15.000000,20.000000)

这样输出的第二个结果会比例子上给的更加有意义一点(可能第一个就没多少意义了),对convertToWorldSpace的理解更简单。表示的是sprite2在世界坐标系里的坐标--(15,20)(sprite2本来是sprite1的子节点坐标-(-5,-20))

转载于:https://www.cnblogs.com/myxiaoxiaoyi/p/5573641.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值