• cocos2d-x_AnchorPoint锚点


    锚点是定位和变换操作的一个重点。锚点我们能够看成用一根图钉将一张纸或者相片钉在墙上的那个点。

    节点的位置是由我们设置的positionanchor point一起决定的。

    值得一提的是,anchor point的默认位置Layer的是左下,而其它的node是中点。

    节点的原点是父节点的左下角。

    1. CCLayer* layer1 = CCLayerColor::create(ccc4(255,0,0,255), 300, 200);  
    2. CCLayer* layer2 = CCLayerColor::create(ccc4(255,255,0,255), 100, 100);  
    3.           
    4. addChild(layer1);  
    5. layer1->addChild(layer2);  

    1. layer2->setPosition(50,50);  

    可见Layer的锚点是左下角,节点的原点是父节点的左下角。

    再看一个:

    1. CCSprite *p1 = CCSprite::create("HelloWorld.png", CCRectMake(100, 100, 100, 100));  
    2. CCSprite *p2 = CCSprite::create("girl1.png");  
    3. addChild(p1);  
    4. p1->addChild(p2);   //p2作为p1的子节点  
    5. setPosition(200,200);  // Layer 的原点移到200,200  


    设置锚点:

    LayerSprite有不同,layer要设置锚点,必须先:ignoreAnchorPointForPosition(false);

    1.     CCLayer* layer1 = CCLayerColor::create(ccc4(255,0,0,255), 300, 200);  
    2.     CCLayer* layer2 = CCLayerColor::create(ccc4(255,255,0,255), 100, 100);  
    3.     addChild(layer1);  
    4.     layer1->addChild(layer2);  
    5. /*  layer1->ignoreAnchorPointForPosition(false);*/  
    6.     layer1->setAnchorPoint(ccp(0.5,0.5));  

    1. CCLayer* layer1 = CCLayerColor::create(ccc4(255,0,0,255), 300, 200);  
    2. CCLayer* layer2 = CCLayerColor::create(ccc4(255,255,0,255), 100, 100);    
    3. addChild(layer1);  
    4. layer1->addChild(layer2);  
    5. layer1->ignoreAnchorPointForPosition(false);  
    6. layer1->setAnchorPoint(ccp(0.5,0.5));  

    Sprite不用设置就可以。

    1. CCSprite *p1 = CCSprite::create("HelloWorld.png", CCRectMake(100, 100, 100, 100));  
    2. CCSprite *p2 = CCSprite::create("girl1.png");  
    3. addChild(p1);  
    4. p1->addChild(p2);  
    5. p2->setAnchorPoint(ccp(1,1));  
    6. setPosition(200,200);  

    和前面第三个图比較一下就了解了。

    小女孩的锚点已经到了红色点位置

  • 相关阅读:
    打包下载,byte[] ,
    .net mvc 异常处理 IExceptionFilter,保存请求参数
    c# webapi websocket 服务端消息发送
    mailkit用163发邮件
    使用OPCAutomation实现对OPC数据的访问,“对 COM 组件的调用返回了错误 HRESULT E_FAIL”错误
    .net core 获取客户端ip
    C#读取OPC server
    Makedown语言常用语法
    ops:Rsync和Scp区别
    ops:Linux /bin,/sbin,/usr/sbin, /usr/local/bin区别
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7149384.html
Copyright © 2020-2023  润新知