MyPaddle* MyPaddle::paddleWithTexture(Texture2D* pTexture) { MyPaddle* pPaddle = new MyPaddle(); pPaddle->initWithTextrue(pTexture); pPaddle->autorelease(); return pPaddle; }
MyPaddle* MyPaddle::createMyPaddle() { MyPaddle *myPaddle = new MyPaddle(); if (myPaddle && myPaddle->initWithFile("GameLayer/myPaddle.png")) { myPaddle->autorelease(); return myPaddle; } CC_SAFE_DELETE(myPaddle); return NULL; }
bool ChoiceScene::init() { if(!CCLayer::init()) { return false; } setKeypadEnabled(true); CCSize szWin = CCDirector::sharedDirector()->getWinSize(); CCSprite* pSprite = CCSprite::create("Black.png"); pSprite->setPosition(ccp(szWin.width/2, szWin.height/2)); CCSize szSprite = pSprite->getContentSize(); pSprite->setScaleX(szWin.width/szSprite.width); pSprite->setScaleY(szWin.height/szSprite.height); this->addChild(pSprite, 0); // const char *szImgs[4] = { "paddle/btn_play.png", "paddle/btn_rewind.png","paddle/btn_fast_forward.png", "fonts/fps_images.png" }; // float fSettings[4][4] = { { 20.0f / 480, 16.0f / 320, 280.0f / 480, 160.0f / 320 }, { 20.0f / 480, 16.0f / 320, 200.0f / 480, 160.0f / 320 }, { 20.0f / 480, 16.0f / 320, 240.0f / 480, 160.0f / 320 }, { 20.0f / 480, 22.0f / 320, 280.0f / 480, 172.0f / 320 } }; //分别对开始游戏,上一关,下一关按钮的图片加载上来显示到合适位置 enum_evt evts[4] = {evt_start, evt_pressA, evt_pressB, evt_text}; for(int i =0; i < 3; i++) { float* fSetting = fSettings[i]; CCTexture2D* paddleTexture = CCTextureCache::sharedTextureCache()->addImage(szImgs[i]); //CCSprite* pPaddle = CCSprite::createWithTexture(paddleTexture); MyPaddle* pPaddle = MyPaddle::paddleWithTexture(paddleTexture); CCSize szBtn = pPaddle->getContentSize(); pPaddle->setScaleX(szWin.width/szBtn.width*fSetting[0]); pPaddle->setScaleY(szWin.height/szBtn.height*fSetting[1]); pPaddle->setPosition(ccp(szWin.width*fSetting[2], szWin.height*fSetting[3])); addChild(pPaddle); //设置当前场景到MyPaddle中,然后设置事件类型到MyPaddle中 pPaddle->setpScene(this); pPaddle->setevttyp(evts[i]); } //对现实关卡的数字进行操作,设置显示数字为1 //设置锚点,设置缩放,设置位置已经颜色 int i = 3; ccColor3B color = {0, 0, 0}; float* fSetting = fSettings[i]; CCLabelAtlas* label1 = CCLabelAtlas::create("1", szImgs[i], 16, 32, '.'); CCSize sz = label1->getContentSize(); label1->setAnchorPoint(ccp(0.5f, 0.5f)); label1->setScaleX(szWin.width / sz.width * fSetting[0]); label1->setScaleY(szWin.height / sz.height * fSetting[1]); label1->setPosition(ccp(szWin.width * fSetting[2], szWin.height * fSetting[3])); label1->setColor(color); addChild(label1, 0, evt_text); return true; }