首页 > 代码库 > cocos2dX改变锚点位置

cocos2dX改变锚点位置

改变锚点时,同过计算偏移量修正position从而保持CCNode在屏幕上的位置不变

 

 1 void CLayer::change_anchorpoint(CCNode* node,CCPoint newpt) 2 { 3     float dx, dy, diffx, diffy, height, width; 4     width = node->getContentSize().width; 5     height = node->getContentSize().height; 6  7     diffx = (newpt.x - node->getAnchorPoint().x)*width; 8     diffy = (newpt.y - node->getAnchorPoint().y)*height; 9     node->setPositionX(node->getPositionX() + diffx);10     node->setPositionY(node->getPositionY() + diffy);11     node->setAnchorPoint(newpt);12 }

newpt为新锚点的位置

cocos2dX改变锚点位置