1.锚点通常是图形的几何中心,

AnchorPoint(x,y)的两个参量x和y的取值通常都是0到1之间的实数,表示锚点相对于节点长宽的位置。

例如,把节点左下角作为锚点,值为(0,0);

把节点的中心作为锚点,值为(0.5,0.5);

把节点右下角作为锚点,值为(1,0)。

精灵的AnchorPoint默认值为(0.5,0.5),其他节点的默认值为(0,0),如CCLayer。

相关的操作:setAnchorpoint(0,0);

影响: 1.挂载位置,   2.缩放,     3.旋转

2.忽略锚点:

spr->ignoreAnchorPointForPosition(true);

对于CCLayer默认是忽略锚点的,忽略锚点则锚点位置在(0,0)

注意:忽略锚点,锚点位置不在几何中心,而在原点

myAnchorPoint.h

#pragma once
#include "cocos2d.h"
USING_NS_CC; class MyAnchorPoint:public CCLayer
{
public:
static CCScene * scene();
static MyAnchorPoint *create();
bool init(); /*原始绘图*/
void draw(); /*屏幕尺寸的大小*/
CCSize winSize; };

myAnchorPoint.cpp

#include "MyAnchorPoint.h"

/*创建一个场景*/
CCScene * MyAnchorPoint::scene()
{
CCScene * scene = CCScene::create();
MyAnchorPoint * layer = MyAnchorPoint::create();
/*获取默认情况下的位置,即锚点的位置所在*/
CCLog("x=%g,y=%g", layer->getPositionX(), layer->getPositionY()); /*CCLayer是默认忽略锚点的*/
layer->ignoreAnchorPointForPosition(false); scene->addChild(layer);
return scene;
} /*创建一个图层*/
MyAnchorPoint *MyAnchorPoint::create()
{
MyAnchorPoint * pRet = new MyAnchorPoint();
if (pRet && pRet->init())
{
pRet->autorelease();
}
else
{
delete pRet;
pRet = NULL;
}
return pRet;
} /*初始化图层*/
bool MyAnchorPoint::init()
{
/*先初始化父类*/
CCLayer::init();
/*获取屏幕尺寸的大小*/
winSize = CCDirector::sharedDirector()->getWinSize(); /*创建一个精灵,测试锚点对挂载位置的影响*/
//CCSprite *spr = CCSprite::create("anchor3.png"); /*创建一个精灵,测试锚点对缩放的影响*/
/*CCSprite *spr = CCSprite::create("anchor1.png");
spr->setScale(2.0f);*/ /*创建一个精灵,测试锚点对旋转的影响*/
CCSprite *spr = CCSprite::create("anchor2.png");
/*以锚点为支点旋转30度*/
//spr->setRotation(30.0f); /*开启忽略锚点,测试忽略锚点对精灵的影响*/
spr->ignoreAnchorPointForPosition(true); /*设置精灵的位置*/
spr->setPosition(ccp(winSize.width/, winSize.height/)); /*设置锚点不同,挂载位置则不同,默认锚点是在几何中心*/
//spr->setAnchorPoint(ccp(0, 0));
//spr->setAnchorPoint(ccp(0, 1));
/*spr->setAnchorPoint(ccp(1, 0));
spr->setAnchorPoint(ccp(1, 1));*/ /*将精灵添加进图层*/
this->addChild(spr); return true; } void MyAnchorPoint::draw()
{
/*设置绘图的颜色,默认为白色*/
ccDrawColor4B(, , , ); /*画线*/
ccDrawLine(ccp(, winSize.height / ), ccp(winSize.width,winSize.height/));
ccDrawColor4B(, , , );
ccDrawLine(ccp(winSize.width/, ), ccp(winSize.width/, winSize.height)); }

什么是锚点(AnchorPoint)的更多相关文章

  1. 关于锚点(anchorPoint)的一些理解

    默认来说,锚点位于图层的中点.对锚点一直不太了解是怎么移动的,有时候搞明白过不久碰到了又是懵逼,这次专门记录下来自己的一些理解,有不对的也请指教一下.就用下张图来简单的说明,每个视图的左上角锚点位置为 ...

  2. 彻底理解position与anchorPoint

    引言 相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置?CALayer的position点是哪一点呢?anchorPoint与positio ...

  3. iOS开发——使用OC篇&frame,bounds,center,position,anchorPoint总结

    frame,bounds,center,position,anchorPoint总结 图层的 position 属性是一个 CGPoint 的值,它指定图层相当于它父图层的位置, 该值基于父图层的坐标 ...

  4. position与anchorPoint

    相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置?CALayer的position点是哪一点呢?anchorPoint与position有什 ...

  5. 彻底理解position与anchorPoint - Wonderffee's Blog(转)

    引言 相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置?CALayer的position点是哪一点呢?anchorPoint与positio ...

  6. Position & anchorPoint 深入

    引言 相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置?CALayer的position点是哪一点呢?anchorPoint与positio ...

  7. ios开发图层layer与核心动画二:CATransform3D,CAlayear和UIView区别,layer的position和anchorpoint

    一:CATransform3D #import "ViewController.h" @interface ViewController () @property (weak, n ...

  8. Cocos2d-x 3.2 学习笔记(五)Sprite Node

    游戏中最重要的元素Sprite精灵,关于精灵的创建,精灵的控制等等. 涉及到的类Class: AnimationFrame 动画帧. Animation 动画对象:一个用来在精灵对象上表现动画的动画对 ...

  9. [原创]cocos2d-x研习录-第二阶 概念类之节点类(CCNode)

    节点类CCNode在基本概念中并不存在,它是为了建立基本概念之间的关联关系而抽象出来的中间辅助类.这个类在Cocos2D-x中极为重要,它为概念类之间搭建了一座宏伟的桥梁.它的继承关系图如下:     ...

随机推荐

  1. leetcode 6

    题目描述: 该开始就输在了理解题意上.. 没搞懂zigzag是什么意思. 查了一些解释终于明白要干什么了.     将一个字符串按照Z字形排列(侧着看):再把结果按行输出. 刚开始的想法是讲字符串按照 ...

  2. Linux系统在嵌入式硬件上的移植

    =========================        基本常识       ========================= 一. Linux系统的基本构成: 1. loader 2.  ...

  3. myeclipse关闭properties文件自动转义

    1.如图,源代码是这样: 2.保存后重新打开变成这样: 3.解决方法如下:

  4. jquery resize事件增强版

    /* * jQuery resize event - v1.1 - 3/14/2010 * http://benalman.com/projects/jquery-resize-plugin/ * * ...

  5. IIS报错 未将对象引用设置到对象的实例。

    在vs中运行正常的项目 ,发布到IIS总是提示 未将对象引用设置到对象的实例. 运行静态页面 html正常,只是打开.aspx页面的时候报错,在确保了数据库,配置,权限均正常的情况下. 错误原因:先安 ...

  6. C puzzles详解【26-30题】

    第二十六题(不会) The following is a simple program which implements a minimal version of banner command ava ...

  7. Spring事务:传播行为与隔离级别

    文章主要来源:https://github.com/dengdaiyemanren/onetopiconeday/wiki/spring%E4%BA%8B%E5%8A%A1%E9%85%8D%E7%B ...

  8. jquery 获取元素坐标

    不错哦! 原文地址:http://jianzhong5137.blog.163.com/blog/static/9829049201182295833503/ 绝对X,Y坐标,可以用offset()方 ...

  9. 【Zend Studio】10.6.0版本设置默认编码为UTF-8

    1.打开Windows->Prefefences 2.找到Workspace->Text file encoding,修改为UTF-8,OK保存.

  10. 复习后台代码(与前面clentHttp连接网络结合)

    package com.zzw.LoginServelt; import java.io.IOException; import java.io.PrintWriter; import javax.s ...