什么是锚点(AnchorPoint)
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/2, winSize.height/2));/*设置锚点不同,挂载位置则不同,默认锚点是在几何中心*///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(255, 0, 0, 255);/*画线*/ccDrawLine(ccp(0, winSize.height / 2), ccp(winSize.width,winSize.height/2));ccDrawColor4B(255, 255, 0, 255);ccDrawLine(ccp(winSize.width/2, 0), ccp(winSize.width/2, winSize.height));}
转载于:https://www.cnblogs.com/ttss/p/4066214.html
什么是锚点(AnchorPoint)相关推荐
- iOS开发之锚点anchorPoint
效果图如下: 我们可以看到,不管棕色的方块怎么运动,总是以绿色的店作为中心来移动的,这就和船只的锚点是一样的道理 一.简介: anchorPoint 锚点 以锚点为中心,执行动画(与渔夫固定船的点一 ...
- iOS CoreAnimation(四) anchorPoint,锚点
在了解锚点之前,需要了解 UIView 三个属性:frame,bounds,center "这三个属性太简单了吧?" 假设 view2 是 view1 的子视图,view1 设置 ...
- SpriteKit之浅谈AnchorPoint(锚点)的使用
理想如果不向现实做一点点屈服,那么理想也将归于尘土. 锚点的简介 在SpriteKit的游戏开发当中经常会使用到AnchorPoint这一属性,锚点的使用一般是配合着position属性使用的,锚点是 ...
- Cocos2dx学习笔记9:cocos2dx锚点(Anchor Point)
锚点(AnchorPoint)是相对坐标,通常用来定义物体内部的点,在cocos2dx中,一般都是以加载精灵来实现游戏元素的表现,而精灵一般都是对应的一张图片资源. 我们在设置精灵位置的时候,要设置精 ...
- 彻底理解position与anchorPoint - Wonderffee's Blog(转)
引言 相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置? CALayer的position点是哪一点呢? anchorPoint与posi ...
- iOS开发之layer.frame,layer.anchorPoint,layer.position对frame的影响
最近遇到相关的问题,所以就将这三个属性值,进行了分析和研究,话不多说,直接上代码了,详细的文字描述都在代码中,可以自行查看. 之前还写了一篇文章,也可以同时查看一下: iOS开发之如何保证控件位置不变 ...
- 48.iOS动画和理解position与anchorPoint
1.动画的基本概念 动画的使⽤场景:iOS中的动画是指一些视图上的过渡效果,合理利用动画能提⾼用户体验,UIView动画影响的属性 frame:视图框架 center:视图位置 alpha:视图透明度 ...
- 彻底理解position与anchorPoint
引言 相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置? CALayer的position点是哪一点呢? anchorPoint与posi ...
- anchorPoint
每一个UIView内部都默认关联着一个CALayer, UIView有frame.bounds和center三个属性,CALayer也有类似的属性,分别为frame.bounds.position.a ...
最新文章
- 腾讯终于良心了!桌面混乱终于有救了
- LINUX文件、目录权限及相关操作命令
- 网络工程师应该掌握的50个路由器知识要点
- 第25节 典型应用集成技术
- postman模拟文件上传接口
- Codeforces Round #506 (Div. 3) - E. Tree with Small Distances
- Python连接MySQL及一系列相关操作
- JeeSite 4.0 (1.0)开发环境部署运行
- Mr.J-- jQuery学习笔记(二十五)--监听DOM加载
- python合并word全部_python:怎样合并文档中有重复部分的行?
- 一加Z配置细节曝光:处理器大变 为了更好的进入欧洲市场?
- 夯实Java基础(二)——面向对象之封装
- Python如何从一个文件中调用另一个文件的类
- 心电图分析软件_家用心电图机,一键出报告,让你在家就能看懂心电图!
- 小米5splus(高配版/全网通)线刷兼救砖_解账户锁_纯净刷机包_教程
- MATLAB如何配平化学方程,【如何配平化学方程式】作业帮
- mysql 主从 只读,mysql主从复制(从库只读)
- [js高手之路]jquery插件开发实战-选项卡详解
- 241个jquery插件—jquery插件大全
- matlab 使用 audioread 、 sound 读取和播放 wav 文件