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

节点的位置是由我们设置的position和anchor 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

设置锚点:

Layer和Sprite有不同,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);

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

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

cocos2d-x_AnchorPoint锚点的更多相关文章

  1. cocos2d中锚点概念

    这两天看了下锚点的概念. /** * Sets the anchor point in percent. * * anchorPoint is the point around which all t ...

  2. flash 动画数据导出 到 coco2d-js ,cocos2d-x 问题的记录

    1:必须搞清flash坐标系 和 cocos2d 的坐标系的差异2:对于cocos2d系列坐标系的深入理解: 以前我们常认为 coco2d-x的X,Y是相对坐标系,相对于父节点的X,Y的坐标,这种说法 ...

  3. cocos2d-x 绘制基本图元

    转自:http://4137613.blog.51cto.com/4127613/754729 第一部分:基本图形绘制   cocos2dx封装了大量opengl函数,用于快速绘制基本图形,这些代码的 ...

  4. cocos2d anchor point 锚点解析

    anchor point 究竟是怎么回事? 之所以造成不容易理解的是因为我们平时看待一个图片是 以图片的中心点 这一个维度来决定图片的位置的.而在cocos2d中决定一个 图片的位置是由两个维度 一个 ...

  5. 5.cocos2d锚点

    创建一个层T1LayerAnchorPoint AppDelegate.cpp bool AppDelegate::applicationDidFinishLaunching() { // initi ...

  6. Cocos2d入门--1--初涉相关属性或代码

    Cocos2d vision:  cocos2d-x-3.8.1 万丈高楼,起于累土.对于一个游戏框架的学习,其实在于框架功能的使用积累,学会了如何在cocos2d游戏引擎的基础上使用它提供的各种功能 ...

  7. cocos基础教程(6)坐标与锚点讲解

    坐标系详解 Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系.原点为屏幕左下角,x向右,y向上. 世界坐标系(World Coordinate) VS 本地坐标系(Node L ...

  8. Cocos2d坐标系转换

    Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系(高中数学里面那种). 笛卡尔坐标系 笛卡尔坐标系中定义右手系原点在左下角,x向右,y向上,z向外,OpenGL坐标系为笛卡尔右 ...

  9. 什么是锚点(AnchorPoint)

    1.锚点通常是图形的几何中心, AnchorPoint(x,y)的两个参量x和y的取值通常都是0到1之间的实数,表示锚点相对于节点长宽的位置. 例如,把节点左下角作为锚点,值为(0,0): 把节点的中 ...

  10. 【Cocos2d入门教程七】三分钟看懂Cocos2d坐标系

    无论是搞2d还是3d开发,最需要搞清楚的就是坐标系,这部分混乱的话就没啥搞头了.所以玩cocos2d,一上来就需要先把各种与坐标有关的东西搞清楚. 1.OpenGL坐标系 Cocos2d-x使用的是O ...

随机推荐

  1. MySQL List分区(三)

    具体介绍请看   MySQL分区一 样例:该样例为本人个人学习总结分享

  2. angularjs1-1

    <!DOCTYPE html> <html> <body> <header> <meta http-equiv="Content-Typ ...

  3. sql语句获取本周、本月、本年数据

    本周:select * from table where datediff(week,C_CALLTIME,getdate())=0     --C_CALLTIME 为日期字段本月:select * ...

  4. 三种排序方法(c语言)

    #include "stdio.h" void main() {void read_data(int a[],int n); void write_data(int a[],int ...

  5. C语言“%”运算符

    C语言中运算符“%”是取余运算符,而非取模运算符.(运算符“%”在C/C++, JAVA中,为取余运算,而在Python中为取模运算) 对于一个C语言取余表达式a % b,设其值为result,有如下 ...

  6. 详解循环神经网络(Recurrent Neural Network)

    本文结构: 模型 训练算法 基于 RNN 的语言模型例子 代码实现 1. 模型 和全连接网络的区别 更细致到向量级的连接图 为什么循环神经网络可以往前看任意多个输入值 循环神经网络种类繁多,今天只看最 ...

  7. Python 之 PyCharm使用

    PyCharm  的官方网站地址是:https://www.jetbrains.com/pycharm/download/ 教育版:https://www.jetbrains.com/pycharm- ...

  8. oracle调优使用到相关sql

    select * from v$session where username is not null;select username,count(username) from v$session wh ...

  9. Unity 点击屏幕发射射线 代码

    1,创建一根射线 2,检查射线与其他物体的碰撞,得到碰撞信息 3,通过碰撞信息对碰撞到的物体进行处理 using System.Collections; using System.Collection ...

  10. CorelDRAW升级计划--如何购买

    了解通过全新 CorelDRAW 2017升级计划更新此图形设计软件所有最新功能的实惠方案.助升级计划,您可以在下一主要产品版本推出时便收到该版本,从而始终使您的产品保持最新.升级计划取代为 X6 和 ...