cocos2dx menu思考 (1)
1、 CCMenuItemSprite首先是一个节点(继承Node),内部包含了三个子节点(m_pNormalImage,m_pSelectedImage,m_pDisabledImage), 3、 menuItem的大小:
void CCMenuItemSprite::setNormalImage(CCNode* pImage) { if (pImage != m_pNormalImage) { if (pImage) { addChild(pImage,kNormalTag); pImage->setAnchorPoint(ccp(0,0)); } if (m_pNormalImage) { removeChild(m_pNormalImage,true); } m_pNormalImage = pImage; this->setContentSize(m_pNormalImage->getContentSize()); this->updateImagesVisibility(); } } 4、 点击按钮的状态切换就是通过隐藏和显示不同的状态来实现的:
void CCMenuItemSprite::selected() { CCMenuItem::selected(); if (m_pNormalImage) { if (m_pDisabledImage) { m_pDisabledImage->setVisible(false); } if (m_pSelectedImage) { m_pNormalImage->setVisible(false); m_pSelectedImage->setVisible(true); } else { m_pNormalImage->setVisible(true); } } } 总结: 1、如果想要在menuItem上面加入一个东西,如文字,表明是什么功能的按钮, 如果需要在三种状态下都显示,那么只需要把它加入到menuItem节点上即可。 2、如果三个状态显示的内容不同,如果只是图片变化,则使用 CCMenuItemImage * CCMenuItemImage::create(const char *normalImage,const char *selectedImage,const char *disabledImage) , 如果不止是图片变化,则使用CCMenuItemSprite::create(CCNode* normalSprite,CCNode* disabledSprite)。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |