![]()
#include "BoardBg.h"#define PEN_Tag_1 111#define PEN_Tag_2 222#define PEN_Tag_3 333bool BoardBg::_istouch1 = true;bool BoardBg::_istouch2 = true;bool BoardBg::_istouch3 = true;CCScene * BoardBg::scene(){ CCScene * s = CCScene::create(); cclayer * layer = BoardBg::create(); s->addChild(layer); return s;}bool BoardBg::init(){ bool bRet = false; do { CC_BREAK_IF(!cclayer::init()); //点击后pen移动 _PenMoveX = 5; _PenMoveY = 10; addBoardBg();//背景; addPenspr();//添加pen; _drawPen = drawPaint::create(); addChild(_drawPen,100); bRet = true; } while (0); return bRet;}voID BoardBg::addBoardBg()//添加背景;{ const char * mainBgname = "mainBg5.png"; CCSize winSize = CCDirector::sharedDirector()->getWinSize(); _boradBg = CCSprite::create(mainBgname); _boradBg->setAnchorPoint(ccp(0,0)); _boradBg->setScale(winSize.wIDth / _boradBg->getContentSize().wIDth);//屏幕适配; addChild(_boradBg); return;}voID BoardBg::addPenspr()//添加pen;{ const char * penname = "pen.png"; _pen1 = CCSprite::create(penname); _pen2 = CCSprite::create(penname); _pen3 = CCSprite::create(penname); _penSize = _pen1->getContentSize(); //_pen1->setposition(ccp(_penSize.wIDth / 2,_penSize.height / 2)); //_pen2->setposition(ccp(_penSize.wIDth / 2 * 2 + 10,_penSize.height / 2)); //_pen3->setposition(ccp(_penSize.wIDth / 2 * 3 + 10,_penSize.height / 2));//按钮 pen1Item = CcmenuItemSprite::create(_pen1,_pen1,this,menu_selector(BoardBg::PenCallBack1)); pen1Item->setposition(ccp(_penSize.wIDth/2,_penSize.height/2)); pen1Item->setTag(PEN_Tag_1); pen2Item = CcmenuItemSprite::create(_pen2,_pen2,menu_selector(BoardBg::PenCallBack2)); pen2Item->setposition(ccp((_penSize.wIDth / 2) * 2 + 20,_penSize.height / 2)); pen2Item->setTag(PEN_Tag_2); pen3Item = CcmenuItemSprite::create(_pen3,_pen3,menu_selector(BoardBg::PenCallBack3)); pen3Item->setposition(ccp((_penSize.wIDth / 2) * 3 + 40,_penSize.height / 2)); pen3Item->setTag(PEN_Tag_3); //menu Ccmenu * menu = Ccmenu::create(pen1Item,pen2Item,pen3Item,NulL); menu->setAnchorPoint(ccp(0,0)); menu->setposition(ccp(20,0)); addChild(menu);}voID BoardBg::RestorePen1(){ pen1Item->setposition(ccp(_penSize.wIDth / 2,_penSize.height / 2)); _istouch1 = true;}voID BoardBg::RestorePen2(){ pen2Item->setposition(ccp((_penSize.wIDth / 2) * 2 + 20,_penSize.height / 2)); _istouch2 = true;}voID BoardBg::RestorePen3(){ pen3Item->setposition(ccp((_penSize.wIDth / 2) * 3 + 40,_penSize.height / 2)); _istouch3 = true;}//回调,getTag获取voID BoardBg::PenCallBack1(CCObject* sender){ CCSprite * spr = (CCSprite*)sender; spr->getChildByTag(PEN_Tag_1); if (_istouch1) { _drawPen->_istouchDraw = true; spr->setposition(ccp(spr->getpositionX() - _PenMoveX,spr->getpositionY() + _PenMoveY)); _drawPen->_penBold = 5; RestorePen2(); RestorePen3(); } if (!_istouch1) { _drawPen->_istouchDraw = false; spr->setposition(ccp(spr->getpositionX() + _PenMoveX,spr->getpositionY() - _PenMoveY)); } _istouch1 = !_istouch1;}voID BoardBg::PenCallBack2(CCObject* sender){ CCSprite * spr = (CCSprite*)sender; spr->getChildByTag(PEN_Tag_2); if (_istouch2) { _drawPen->_istouchDraw = true; spr->setposition(ccp(spr->getpositionX() - _PenMoveX,spr->getpositionY() + _PenMoveY)); _drawPen->_penBold = 7; RestorePen1(); RestorePen3(); } if (!_istouch2) { _drawPen->_istouchDraw = false; spr->setposition(ccp(spr->getpositionX() + _PenMoveX,spr->getpositionY() - _PenMoveY)); } _istouch2 = !_istouch2;}voID BoardBg::PenCallBack3(CCObject* sender){ CCSprite * spr = (CCSprite*)sender; spr->getChildByTag(PEN_Tag_3); if (_istouch3) { _drawPen->_istouchDraw = true; spr->setposition(ccp(spr->getpositionX() - _PenMoveX,spr->getpositionY() + _PenMoveY)); _drawPen->_penBold = 9; RestorePen1(); RestorePen2(); } else { _drawPen->_istouchDraw = false; spr->setposition(ccp(spr->getpositionX() + _PenMoveX,spr->getpositionY() - _PenMoveY)); } _istouch3 = !_istouch3;} 总结 以上是内存溢出为你收集整理的cocos2d-x CCmenuSpriteItem 用getChildByTag()获取;全部内容,希望文章能够帮你解决cocos2d-x CCmenuSpriteItem 用getChildByTag()获取;所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)