总结:
什么是锚点?我们知道Layer,Scene,Sprite,创建它们的时候可以添加一张图,此时我们就把这个图当作一个2维坐标,底部为x轴,高为y轴,设置setAnchorPoint(0,0)代表锚点在坐标(图片)的左下角,即x=0,y=0,使用锚点时可以理解为节点的x,y最大值都为1,设置锚点值相当于设置xy值。
一、锚点的设置
//Layer默认锚点值为(0,0)是因为ignoreAnchorPointForPosition=true; //Node锚点值是(0.5,0.5),ignoreAnchorPointForPosition=false。 node->setAnchorPoint( Vec2 (0.5,0.5)); //默认为中心 node->setAnchorPoint( Vec2 (0,0)); //左下角 node->setAnchorPoint( Vec2 (0,1)); //左上角 node->setAnchorPoint( Vec2 (1,0)); //右下角 node->setAnchorPoint( Vec2 (1,1)); //右上角
如上可以看到一个Node或其子类(Scene、Sprite)锚点的设置方法及锚点在Node的位置。
二、锚点的影响
锚点的设置会影响:
位置(position):节点设置的位置即锚点所在位置。
@H_403_32@
auto scene = Scene ::create(); Size s = Director ::getInstance()->getWinSize(); auto parent = Sprite ::create("HelloWorld.png"); parent->setAnchorPoint( Vec2 (0,0)); parent->setPosition(2*s.width/4,2*s.height/4);//锚点所在位置旋转(rotation):以锚点为圆心旋转