博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]anchorPoint 锚点解析
阅读量:5757 次
发布时间:2019-06-18

本文共 1350 字,大约阅读时间需要 4 分钟。

转自:

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(0,0);  sprite.anchorPoint=ccp(0,0);  [self addChild:sprite];

 

具体效果如下:

 

根据上面的公式: 假设精灵的width = height = 10.

actualPosition.x = 0 + 10*(0.5 - 0) = 5;actualPosition.y  = 0 + 10*(0.5 - 0) = 5;

 

(5, 5) 这个结果正是现在图片的在屏幕上的实际位置。

CCSprite *sprite = [CCSprite spritewithFile:@"blackSquare.png"];  sprite.position=ccp(0,0);  sprite.anchorPoint=ccp(-1,-1);  [self addChild:sprite];

 

具体效果如下:

 

根据上面的公式: 假设精灵的width = height = 10.

actualPosition.x = 0 + 10*(0.5 - (-1)) = 15;actualPosition.y  = 0 + 10*(0.5 - (-1)) = 15;

(15, 15) 这个结果正是现在图片的在屏幕上的实际位置。

 

例子三

CCSprite *sprite = [CCSprite spritewithFile:@"blackSquare.png"];  sprite.anchorPoint=ccp(1,1);  sprite.position=ccp(sprite.contentSize.width , sprite.contentSize.height);  [self addChild:sprite];

 

 

根据上面的公式: 假设精灵的width = height = 10.

actualPosition.x = 10 + 10*(0.5 - (1)) = 5;actualPosition.y  = 10 + 10*(0.5 - (1)) = 5;

(5, 5) 这个结果正是现在图片的在屏幕上的实际位置。

转载地址:http://wmpkx.baihongyu.com/

你可能感兴趣的文章
selenium===requestium模块介绍
查看>>
grpc错误处理
查看>>
简单的编辑器
查看>>
仿京东商城商品图片 缩略图+放大镜效果
查看>>
游戏暂停同时角色动作暂停
查看>>
【MyEcplise】设置右键快捷菜单的方法
查看>>
实践作业4:Web测试实践(小组作业)每日任务记录2
查看>>
【总结】IE和Firefox的Javascript兼容性总结
查看>>
Android开发 MMS支持 创建和编辑MMS
查看>>
APP流氓大法之apk 静默安装
查看>>
软件构建--需求分析
查看>>
《大道至简》第一章读后感
查看>>
剑指offer-合并两个排序链表16
查看>>
【解题报告】【HDOJ1232】【并查集】畅通工程
查看>>
第一个爬虫和测试
查看>>
SQL进行日期计算
查看>>
内核接收分组理解
查看>>
探究JS中对象的深拷贝和浅拷贝
查看>>
linux yum
查看>>
设计模式之代理模式
查看>>