[转]anchorPoint 锚点解析
转自:http://blog.csdn.net/cjopengler/article/details/7045638
anchor point 究竟是怎么回事? 之所以造成不容易理解的是因为我们平时看待一个图片是 以图片的中心点 这一个维度来决定图片的位置的。而在cocos2d中决定一个 图片的位置是由两个维度 一个是 position 也就是图片的中心点 另外一个是anchor point。只要我们搞清楚他们的关系,自然就迎刃而解。
他们的关系是这样的:
actualPosition.x = position.x + width*(0.5 - anchor_point.x);
acturalPosition.y = position.y + height*(0.5 - anchor_point.y);
//actualPosition 是sprite实际上在屏幕显示的位置, poistion是 程序设置的, achor_point也是程序设置的。
具体看下面的例子一:
CCSprite *sprite = [CCSprite spritewithFile:@"blackSquare.png"];
sprite.position=ccp(,);
sprite.anchorPoint=ccp(,);
[self addChild:sprite];
具体效果如下:
根据上面的公式: 假设精灵的width = height = 10.
actualPosition.x = + *(0.5 - ) = ; actualPosition.y = + *(0.5 - ) = ;
(5, 5) 这个结果正是现在图片的在屏幕上的实际位置。
CCSprite *sprite = [CCSprite spritewithFile:@"blackSquare.png"];
sprite.position=ccp(,);
sprite.anchorPoint=ccp(-,-);
[self addChild:sprite];
具体效果如下:
根据上面的公式: 假设精灵的width = height = 10.
actualPosition.x = + *(0.5 - (-)) = ; actualPosition.y = + *(0.5 - (-)) = ;
(15, 15) 这个结果正是现在图片的在屏幕上的实际位置。
例子三
CCSprite *sprite = [CCSprite spritewithFile:@"blackSquare.png"];
sprite.anchorPoint=ccp(,);
sprite.position=ccp(sprite.contentSize.width , sprite.contentSize.height);
[self addChild:sprite];
根据上面的公式: 假设精灵的width = height = 10.
actualPosition.x = + *(0.5 - ()) = ; actualPosition.y = + *(0.5 - ()) = ;
(5, 5) 这个结果正是现在图片的在屏幕上的实际位置。
[转]anchorPoint 锚点解析的更多相关文章
- cocos2d anchor point 锚点解析
anchor point 究竟是怎么回事? 之所以造成不容易理解的是因为我们平时看待一个图片是 以图片的中心点 这一个维度来决定图片的位置的.而在cocos2d中决定一个 图片的位置是由两个维度 一个 ...
- CALayer anchorPoint 锚点始终为(0,0)
objc.io 学习 摘自原处修改 对层的属性详细了解可见这里 @interface ClockFace : CAShapeLayer@property (nonatomic, strong) NSD ...
- cocos2d-x AnchorPoint锚点
锚点是定位和变换操作的一个重点.锚点我们能够看成用一根图钉将一张纸或者相片钉在墙上的那个点. 节点的位置是由我们设置的position和anchor point一起决定的. 值得一提的是,anchor ...
- CALayer 的 position和anchorPoint属性
在iOS 中,UIButton.UIImage等UIView 之所以能够显示在屏幕上,是因为其内部有一个图层(CALayer).通过UIView的layer 属性可以访问这个图层: @property ...
- [Think] position与anchorPoint关系
1.简介: 最近在学习动画,所以接触到了CAlayer类. 其中的position与anchorPoint关系一感觉一头雾水,网上有篇文章 彻底理解position和anchorPoint关系 里面 ...
- iOS:CALayer锚点的使用
CALayer层的位置主要和position和anchorPoint有关.其中它们在一起才能决定层在视图中的具体位置. @property CGPoint position; //位置 ...
- iOS AnchorPoint 引起的坐标问题
这里主要讨论设置AnchorPoint 改变时,会影响我们预期的布局问题: 一.初始代码布局 //参照页面 UIView *aView = [[UIView alloc]initWit ...
- 简析iOS动画原理及实现——Core Animation
本文转载至 http://www.tuicool.com/articles/e2qaYjA 原文 https://tech.imdada.cn/2016/06/21/ios-core-animati ...
- cocos2d-x 3.0 Node与Node层级结构
节点解释: 节点是场景图的基本元素.场景图的基本元素必须是节点对象或者是节点对象的子类. 其中主要可以看到Layer.MenuItem.Scene.Sprite.TMXTiledMap(解析and渲染 ...
随机推荐
- 批处理学习笔记14 - 把所有.mp4文件全部拷贝进统一目录
今天下载了一套视频教程,结果发现不在同一个目录下,很乱.都放在不同文件夹下. 于是写了一个批处理来解决这个问题 @echo off for /r %%i in (*mp4) do ( copy %%i ...
- [k8s]subpath解决cm覆盖目录问题
参考 发现cm老覆盖容器原有目录里的内容,后来不得不通过in -s的方式来搞cm, 先将cm挂到/tmp下,然后ln -s文件到指定目录. 后来发现个cm的subpath特性可以解决这个问题 写了bu ...
- PairRDD中算子reduceByKey图解
reduceByKey 函数原型: def reduceByKey(func: (V, V) => V): RDD[(K, V)] def reduceByKey(func: (V, V) =& ...
- 【转】Hive优化总结
优化时,把hive sql当做map reduce程序来读,会有意想不到的惊喜. 理解Hadoop的核心能力,是hive优化的根本.这是这一年来,项目组所有成员宝贵的经验总结. 长期观察hadoo ...
- 多行文字在一个div中上下左右居中
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 续写上一篇的数组or指针操作
C语言,同样使用if else while 这样的语法,但不同的人,就是有不同的实现方式,甚至是技巧. eg: #include <stdio.h> #include<string. ...
- layer返璞归真
返璞归真 前端社区正在变得日渐喧嚣,我们似乎很难停下追逐的脚步.而Layui偏偏回望当初,奔赴在返璞归真的漫漫征途,自信并勇敢着,追寻于原生态的书写指令,试图以最简单的方式诠释高效
- php ldap添加与修改
/** * ldap 备份 * @param int $cardid * @param string $username * @param string $password 未加密密码 * @retu ...
- 几行css3代码实现超炫加载动画
之前为大家分享了css3实现的加载动画.今天为大家带来一款只需几行代码就可以实现超炫的动画加载特效.我们一起看下效果图: 在线预览 源码下载 实现代码: 极简的html代码: <div> ...
- Spring 网路搜集的情报
Spring Validate http://haohaoxuexi.iteye.com/blog/1812584