刚刚在地铁上,有点无聊,突然想到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)
总结以上是内存溢出为你收集整理的关于Cocos2dx的Position和锚点问题全部内容,希望文章能够帮你解决关于Cocos2dx的Position和锚点问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)