加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

关于Cocos2dx的Position和锚点问题

发布时间:2020-12-14 19:26:36 所属栏目:百科 来源:网络整理
导读:刚刚在地铁上,有点无聊,突然想到cocos2dx的位置问题,纠结了一会。现在整理一下跟大家分享: 1.众所周知,cocos2dx中的Node是根据自己的AchorPoint(锚点)来定位的。但是我纠结的是,自己的确定了AchorPoint之后,调用setPosition的时候, 自己的AchorPoi

刚刚在地铁上,有点无聊,突然想到cocos2dx的位置问题,纠结了一会。现在整理一下跟大家分享:

1.众所周知,cocos2dx中的Node是根据自己的AchorPoint(锚点)来定位的。但是我纠结的是,自己的确定了AchorPoint之后,调用setPosition的时候,自己的AchorPoint是和父控件的哪个点进行计算,得到position?

经过自己的测试,发现所谓的setPosition,是指跟父控件的AchorPoint进行比较,得到相对于父控件AchorPoint的位置偏移量


如下图:假设父、子控件的AchorPoint都是Point(0.5f,0.5f),即中点;

那么当子控件->setPointion(150,100)时,实际上是指:子控的锚点相对于父控件的锚点的X偏移量为150,Y偏移量为100



2.关于Node的默认锚点

Node的默认锚点为Point(0.5,0.5),即中点

但是Layer和Scene例外 Layer和Scene的默认锚点是Point(0,0),即左下角,且不能改变


3.当父控件移动时:

如上图,记住,无论父控件移动到哪里,子控件的getPosition和setPosition都是指相对于父控件锚点的位置。

所以上图的父控件无论移动到哪里,子控件进行getPosition操作,始终得到的是Point(150,100)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读