Cocos2D的坐标系统

1. 屏幕坐标系:触摸屏幕时的坐标系

屏幕坐标

Y

2. OpenGL坐标系:使用OpenGL坐标系就可以了

OpenGL

3. 世界坐标系:游戏里面公用的坐标系(绝对坐标系)

4. 本地坐标系:物体本身的坐标系统

5. 锚点

关于锚点的详细讲解

6. 坐标系转换


Director::convertToGL(CCPoint);//将屏幕坐标转换成OpenGL坐标系统
Director::convertToUI(CCPoint);//将OpenGL转换成屏幕坐标

Cocos2D已经给予了各种转换方式,只需要调用就行

Sprite* mysprite1 = Sprite::create("CloseNormal.png");

mysprite1->setPosition(ccp(20,40));

mysprite1->setAnchorPoint(ccp(0, 0));
this->addChild(mysprite1);

    

Sprite* mysprite2 = Sprite::create("CloseNormal.png");
    
mysprite2->setPosition(ccp(-5,-20));
    
mysprite2->setAnchorPoint(ccp(1, 1));
    
this->addChild(mysprite2);
    

//mysprite2 相对于1 的相对坐标,
    
CCPoint point1 = mysprite1->convertToNodeSpace(mysprite2->getPosition());
    
//2 相对于 1的世界坐标,把1 当做世界坐标,然后把2的坐标放过来,
    
//但是最后得到的坐标是 大的世界坐标
    
CCPoint point2 = mysprite1->convertToWorldSpace(mysprite2->getPosition());
    
//把锚点作为坐标原点
    
CCPoint point3 = mysprite1->convertToNodeSpaceAR(mysprite2->getPosition());
    
//把锚点做为坐标原点
    
CCPoint point4 = mysprite1->convertToWorldSpaceAR(mysprite2->getPosition());

    

CCLOG("position = (%f,%f)", point1.x, point1.y);
    
CCLOG("position = (%f,%f)", point2.x, point2.y);
    
CCLOG("position = (%f,%f)", point3.x, point3.y);
    
CCLOG("position = (%f,%f)", point4.x, point4.y);

这些坐标转换,用的不是很多,但是需要了解呢


7. 逻辑数值与真实数值

//逻辑值
    
//获取的是原始的值
    
getContentSize();
    
getPosition();

    
//真实值
    
getBoundingBox();
    
//缩放因子
    
CCDirector::setContentScaleFactor(1.0f);
    
CCDirector::getContentScaleFactor();

转载于:https://www.cnblogs.com/NoisyHu/p/10965868.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值