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

节点的位置是由我们设置的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. Android接口和框架学习

    Android接口和框架学习 缩写: HAL:HardwareAbstraction Layer.硬件抽象层 CTS:CompatibilityTest Suite,兼容性測试套件 Android让你 ...

  2. UESTC--1269--ZhangYu Speech(模拟)

    ZhangYu Speech Time Limit: 1000MS   Memory Limit: 65535KB   64bit IO Format: %lld & %llu Submit ...

  3. Git 学习笔记(二)

    看完了 Git 的介绍后,也是时候动手尝试一下了,不过我们需要先安装好它.它有许多种安装方式,主要分两种,一种是通过编译源代码来安装:另一种是使用为特定平台预编译好的安装包,这里就不做赘述了. 配置 ...

  4. BZOJ 4028 分块

    zrt当年是怎么想到的--. 思路: 考虑把序列分块 对于每块 存xor[i] 表示从本块开头到i的前缀异或和 把它扔进set里 存gcd[i]表示从本块开头到i的前缀gcd. 如果这一块的GCD和整 ...

  5. HTTP_PROXY

    Linux, macOS, or Unix: $ export HTTP_PROXY=http://a.b.c.d:n $ export HTTPS_PROXY=http://w.x.y.z:m 设置 ...

  6. 移除HTML5 input在type="search"时的清除按钮

    input[type="search"]::-webkit-search-cancel-button { display: none; }

  7. node——模块分类,require执行顺序,require注意事项,原理

    node.js模块 在node.js开发中一个文件就可以认为是一个模块. 一.node.js模块分类 核心模块Code Module.内置模块.原生模块 fs http path url ... 所有 ...

  8. (2)RDD的基本操作

    一.map操作,map(Transform) 二.collect操作,collect(Action) 三.使用PairRDD来做计算,类似key-value结构 采用groupByKey来.将资料按照 ...

  9. Spring项目配置log4j日志功能

    一,添加log4j依赖包 可从官网上下载该依赖包log4j-x.x.xx.jar,下载后 build path,添加依赖包如使用maven,可以添加如下依赖 <!-- https://mvnre ...

  10. 转载一遍比较好的,django2.1搭建博客教程

    非常感谢这位博主,找了几个星期终于找到了 https://www.dusaiphoto.com/article/article-detail/4/