<Xcode><初学><备忘>convertToGL 和convertToNodeSpace的作用

coco2dx中屏幕坐标系是以左上角为原点的坐标系,而常用的openGL坐标系是右手坐标系,简单来说就是左下角为原点,所以在接收触摸事件时需要使用convertToGL使得触点坐标转为为openGL坐标方便使用。

convertToNodeSpace,我一开始同时接触这两个关键字的时候以为这是openGL的反向操作……看完说明才知道这是将一个坐标点转化到一个图层的坐标系中。


        CCPoint touchLocation = pTouch->getLocationInView();//获得触点坐标


        touchLocation = CCDirector::sharedDirector()->convertToGL(touchLocation);//将触点坐标转化为GL坐标


        touchLoctaion = pLayer->convertToNodeSpace(touchLocation);//将touchLocation转化为pLayer里的坐标。


有必要的话还需了解cocos2dx的屏幕坐标系统。


convertToNodeSpace可以在新建坐标系上进行坐标的转换。

        pLayer.anchorPoint = CGPointMake(0,0); 

         pLayer . position = CGPointMake (x , y );//在屏幕中任意取一个位置

touchLocation = pLayer->convertToNodeSpace(touchLoction);


旧触点(a, b)转化为新触点(a-x, b-y)。


















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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值