ccmenu里的位置

ccmenu里的位置

ccctableviewcell内的元素不需要设置高度


调整buyitem内的元素的位置,可以通过一个item来调整。

ccctableview、ccctableviewcell的锚点在0,0点


cellItem是需要设置元素的x坐标值,和元素间的位置关系


cclayer的锚点是(0.5,0.5),但是它的坐标原点在屏幕的中心点。



假如在cclayer里有一个ccmenu,那么ccmenu的坐标原点在cclayer的坐标原点。有一个ccmenuitem的锚点是(0.5,0.5),位置是(0,0)。那么这个ccmenuitem处于屏幕的中心。

改变CCMenu的锚点无效,改变CCMenuItem的锚点有效,改变CCMenuItem内部元素的锚点无效.

CCMenu没有使用锚点进行坐标定位,而是使用坐标原点。也就是说,CCMenu的坐标原点放到了其父节点的坐标原点.

CCMenuItem里面的元素的锚点默认在(0,0)处,且元素不可通过setAnchorPoint()改变锚点的位置。假如我们要是实现制作一个中心放大的按钮,那该如何是好呢?虽然锚点位置不可改变,可是setPosition()还是有效的。核心代码如下:

//制作一个中心放大的按钮

  CCSprite *unselectedSprite= CCSprite::create("Icon.png");

CCSprite *selectedSprite =CCSprite::create("Icon-72.png");

//selectedSprite->setAnchorPoint(ccp(0, 1));//无效

selectedSprite->setPosition(ccp((unselectedSprite->getTextureRect().size.width-selectedSprite->getTextureRect().size.width)/2,(unselectedSprite->getTextureRect().size.height-selectedSprite->getTextureRect().size.height)/2));

  

CCMenuItem *item =CCMenuItemSprite::create(unselectedSprite, selectedSprite);

CCMenu *menu =CCMenu::create(item,NULL);

addChild(menu);

参考文章:http://www.cnblogs.com/binxindoudou/archive/2013/04/26/3045737.html

原文地址:https://www.cnblogs.com/yssgyw/p/3428806.html