//------------------------------------------------------------------ // // TextureGlRepeat // //------------------------------------------------------------------ void TextureGlRepeat::onEnter() { TextureDemo::onEnter(); CCSize size = CCDirector::sharedDirector()->getWinSize(); // The .png image MUST be power of 2 in order to create a continue effect. // eg: 32x64, 512x128, 256x1024, 64x64, etc.. CCSprite *sprite = CCSprite::spriteWithFile("Images/pattern1.png", CCRectMake(0, 0, 4096, 4096)); addChild(sprite, -1, kTagSprite1); sprite->setPosition(ccp(size.width/2,size.height/2)); ccTexParams params = {GL_LINEAR,GL_LINEAR,GL_REPEAT,GL_REPEAT}; sprite->getTexture()->setTexParameters(¶ms); CCRotateBy* rotate = CCRotateBy::actionWithDuration(4, 360); sprite->runAction(rotate); CCScaleBy* scale = CCScaleBy::actionWithDuration(2, 0.04f); CCScaleBy* scaleBack = (CCScaleBy*) (scale->reverse()); CCFiniteTimeAction* seq = CCSequence::actions(scale, scaleBack, NULL); sprite->runAction(seq); }
CCArray* AnimationComponent::eightDirectionActionListWithFile(const char* file ,int frameCount ,CCSize frameSize ,float delay) { CCTexture2D *texture=CCTextureCache::sharedTextureCache()->addImage(file); CCArray* actions=new CCArray(); actions->initWithCapacity(8); //move action for (int i=0; i<8; i++) { CCArray* animFrames=new CCArray(); animFrames->initWithCapacity(frameCount); for (int j=0; j<frameCount; j++) { CCSpriteFrame *frame=CCSpriteFrame::createWithTexture(texture ,CCRectMake(j*frameSize.width, i*frameSize.height, frameSize.width, frameSize.height)); animFrames->addObject(frame); } CCAnimation *animation=CCAnimation::createWithSpriteFrames(animFrames,delay); CCAnimate *animate= CCAnimate::create(animation); actions->addObject(CCRepeatForever::create((CCActionInterval*)CCSequence::create(animate,NULL))); animFrames->release(); } return actions; }
bool CTank::init(CCNode *parent, char szTankPlist[], char szTankPng[]) { bool bRet = true; do { CCSpriteFrameCache* cache = CGameManager::getGameManager()->getFrameCache(); CC_BREAK_IF(!cache); cache->addSpriteFramesWithFile(szTankPlist, szTankPng); CCSize tileSize = CGameScene::getTileSize(); CCSprite *tank = CCSprite::spriteWithFile("material/tank2/tank_up.png", CCRectMake(0,0,tileSize.width*2, tileSize.height*2)); //tank->setScale(DEFAULT_TANK_SCALE); CC_BREAK_IF(!tank); m_pTank = tank; tank->setScale(2); tank->setPosition(ccp(tileSize.width,tileSize.height)); this->addChild(tank); parent->addChild(this); m_TankDirection = MOVE_UP; changeTankImage(MOVE_UP); setActive(true); bRet = true; }while(0); return bRet; }
bool GameScene::init() { ////////////////////////////// // 1. super init first if ( !Layer::init() ) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); if(NULL==map){ map=TMXTiledMap::create("map/map1.tmx"); } //map->setScale(2); addChild(map); TMXObjectGroup *objects = map->getObjectGroup("player"); CCASSERT(NULL != objects, "'Objects' object group not found"); auto spawnPoint = objects->getObject("playerinit"); CCASSERT(!spawnPoint.empty(), "SpawnPoint object not found"); int x = spawnPoint["x"].asInt(); int y = spawnPoint["y"].asInt(); Player * player = new Player(); global->player=player; global->map=map; player->setPosition(Vec2(x,y)); addChild(player,2); //player->sprite->runAction(RepeatForever::create(Animate::create(global->createAni(player->texture, 3)))); TMXObjectGroup *object2=map->getObjectGroup("Event"); auto transitionpoint=object2->getObject("transitionEvent"); int x1=transitionpoint["x"].asInt(); int y1=transitionpoint["y"].asInt(); transitionPosition=Vec2(x1,y1); //CCLOG("over"); this->runAction(CCFollow::create(player,CCRectMake(0,0,map->getContentSize().width,map->getContentSize().height))); schedule(schedule_selector(GameScene::updateEvent), 0.1); return true; }
void UISlider::setPercent(int percent) { if (percent > 100) { percent = 100; } if (percent < 0) { percent = 0; } m_nPercent = percent; float dis = m_fBarLength*(percent/100.0f); m_pSlidBallRenderer->setPosition(ccp(-m_fBarLength/2.0f + dis, 0.0f)); if (m_bScale9Enabled) { dynamic_cast<CCScale9Sprite*>(m_pProgressBarRenderer)->setPreferredSize(CCSizeMake(dis,m_ProgressBarTextureSize.height)); } else { int x = 0, y = 0; switch (m_eProgressBarTexType) { case UI_TEX_TYPE_PLIST: { CCSprite* barNode = dynamic_cast<CCSprite*>(m_pProgressBarRenderer); if (barNode) { CCPoint to = barNode->getTextureRect().origin; x = to.x; y = to.y; } break; } default: break; } dynamic_cast<CCSprite*>(m_pProgressBarRenderer)->setTextureRect(CCRectMake(x, y, m_ProgressBarTextureSize.width * (percent/100.0f), m_ProgressBarTextureSize.height)); } }
void OptionLayer::setViews() { setBackGroundImage("loading.png"); CCSprite *title = CCSprite::create("menuTitle.png",CCRectMake(0,0,135,35)); title->setAnchorPoint(ccp(0.5,1)); title->setPosition(ccp(getWinSize().width/2,getWinSize().height-20)); this->addChild(title); CCMenuItemToggle *music_trigger = CCMenuItemToggle::createWithTarget(this,menu_selector(OptionLayer::music_triggerCallback), CCMenuItemFont::create("Music : On"),CCMenuItemFont::create("Music : Off"),NULL); music_trigger->setPosition(ccp(getWinSize().width/2,getWinSize().height/2)); if(SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying()) { music_trigger->setSelectedIndex(1); } else { music_trigger->setSelectedIndex(0); } //menu->setPosition(ccp(getWinSize().width/2,getWinSize().height/2)); CCLabelBMFont *back = CCLabelBMFont::create("back","arial-14.fnt"); back->setScale(1.25f); CCMenuItemLabel *backLable = CCMenuItemLabel::create(back,this,menu_selector(OptionLayer::backCallback)); backLable->setAnchorPoint(ccp(0.5,1)); backLable->setPosition(ccp(getWinSize().width/2,50)); CCMenu *menu = CCMenu::create(music_trigger,backLable,NULL); menu->setPosition(CCPointZero); this->addChild(menu); }
bool About::init() { if (!CCLayer::init()) { return false; } CCSize winSize = CCDirector::sharedDirector()->getWinSize(); CCSprite *sp = CCSprite::create(s_bg01); sp->setPosition(ccp(winSize.width / 2, winSize.height / 2)); addChild(sp, 0, 1); CCTexture2D *imageCache = CCTextureCache::sharedTextureCache()->addImage(s_menuTitle); CCSprite *title = CCSprite::createWithTexture(imageCache, CCRectMake(0, 36, 100, 34)); title->setPosition(ccp(winSize.width/2, winSize.height - 60)); addChild(title); CCLabelTTF *about = CCLabelTTF::create(" Thanks to cocos2d!", "Arial Bold", 32, CCSizeMake(winSize.width * 0.85, 320), kCCTextAlignmentLeft); about->setPosition(ccp(winSize.width / 2, winSize.height / 2 )); addChild(about); CCLabelBMFont *backLb = CCLabelBMFont::create("Go Back", s_font); CCMenuItemLabel *goBack = CCMenuItemLabel::create(backLb, this, menu_selector(About::goBack)); goBack->setScale(0.6f); CCActionInterval *fadeIn = CCFadeTo::create(1, 80); CCActionInterval *fadeOut = CCFadeTo::create(1, 255); CCEaseSineInOut *ease1 = CCEaseSineInOut::create(fadeIn); CCEaseSineInOut *ease2 = CCEaseSineInOut::create(fadeOut); CCFiniteTimeAction *seq = CCSequence::create(ease1, ease2, NULL); // 参数必须要强转,不然ndk编译不过 goBack->runAction(CCRepeatForever::create((CCActionInterval*)seq)); CCMenu *menu = CCMenu::create(goBack, NULL); menu->setPosition(winSize.width / 2, winSize.height/2 - 60); addChild(menu); return true; }
//=========================================================================== bool CSMLoginScene::CreatConfirmDlg( const char * szTip ) { CCSize winSize = CCDirector::sharedDirector()->getWinSizeInPixels(); NDUILayer * pLayer = new NDUILayer(); if ( !pLayer ) return false; pLayer->Initialization(); pLayer->SetFrameRect( CCRectMake(0, 0, winSize.width, winSize.height) ); pLayer->SetTag( TAG_DLG_CONFIRM ); AddChild(pLayer); NDUILoad tmpUILoad2; tmpUILoad2.Load( "ShowYesOrNoDlg.ini", pLayer, this, CCSizeMake(0, 0) ); NDUILabel * pLabelTip = (NDUILabel*)pLayer->GetChild( TAG_LABEL_TIP ); if ( pLabelTip && szTip ) { pLabelTip->SetText( szTip ); } return true; }
bool TitleBar::ccTouchBegan(CCTouch* touch, CCEvent* event) { CCPoint touchLocation = touch->locationInView( touch->view() ); touchLocation = CCDirector::sharedDirector()->convertToGL( touchLocation ); CCPoint pos = convertToNodeSpace( touchLocation ); CCSize sz = getContentSizeInPixels(); bool bRet = CCRect::CCRectContainsPoint(CCRectMake(0, 0, sz.width, sz.height), pos); if (bRet) { CCNotificationCenter::sharedNotifCenter()->postNotification(kNotifyGoTop); return true; } else{ return false; } }
void UILoadingBar::setPercent(int percent) { if ( percent < 0 || percent > 100) { return; } if (m_fTotalLength <= 0) { return; } m_nPercent = percent; float res = m_nPercent/100.0; int x = 0, y = 0; switch (m_eRenderBarTexType) { case UI_TEX_TYPE_PLIST: { CCSprite* barNode = DYNAMIC_CAST_CCSPRITE; if (barNode) { CCPoint to = barNode->getTextureRect().origin; x = to.x; y = to.y; } break; } default: break; } if (m_bScale9Enabled) { setScale9Scale(); } else { dynamic_cast<CCSprite*>(m_pBarRenderer)->setTextureRect(CCRectMake(x, y, m_barRendererTextureSize.width * res, m_barRendererTextureSize.height)); } }
/** * 检查是否在区域里 */ bool UILineValue::touchDown(float x,float y) { CCPoint pos = ccp(x,y); pos = this->convertToNodeSpace(pos); nowTouchPoint = ccp(x,y); if (_back) { float width = _back->getContentSize().width * _back->getScaleX(); float height = _back->getContentSize().height * _back->getScaleY(); CCRect rect = CCRectMake( _back->getPosition().x , _back->getPosition().y, width, height); if (rect.containsPoint(pos)) { _touchIn = true; return true; } } return false; }
void SGEquipBox::initView() { ResourceManager::sharedInstance()->bindTexture("sgequipslayer/sgequipslayer.plist", RES_TYPE_LAYER_UI, sg_box_equipBox); CCSize s = CCDirector::sharedDirector()->getWinSize(); tableViewHeight = 70; tableView->setFrame(CCRectMake(0, 0, 380, 300)); tableView->setPosition(ccpAdd(SGLayout::getPoint(kMiddleLeft), ccp(s.width/2-tableView->getContentSize().width/2,-180))); SGButton *ok = SGButton::create("box_btnbg.png", "public_font_queding.png", this, menu_selector(SGEquipBox::boxCloseWithOutCallBack), ccp(0, 0), false, true); this->addBtn(ok); ok->setPosition(ccpAdd(SGLayout::getPoint(kMiddleCenter), ccp(0, -260))); CCSprite *title = CCSprite::createWithSpriteFrameName("font_taozsx.png"); title->setPosition(ccpAdd(SGLayout::getPoint(kMiddleCenter), ccp(0, 150))); this->addChild(title); }
void Box2DTestLayer::addNewSpriteAtPosition(CCPoint p) { CCLOG("Add sprite %0.2f x %02.f",p.x,p.y); CCNode* parent = getChildByTag(kTagParentNode); //We have a 64x64 sprite sheet with 4 different 32x32 images. The following code is //just randomly picking one of the images int idx = (CCRANDOM_0_1() > .5 ? 0:1); int idy = (CCRANDOM_0_1() > .5 ? 0:1); PhysicsSprite *sprite = new PhysicsSprite(); sprite->initWithTexture(m_pSpriteTexture, CCRectMake(32 * idx,32 * idy,32,32)); sprite->autorelease(); parent->addChild(sprite); sprite->setPosition( ccp( p.x, p.y) ); // Define the dynamic body. //Set up a 1m squared box in the physics world b2BodyDef bodyDef; bodyDef.type = b2_dynamicBody; bodyDef.position.Set(p.x/PTM_RATIO, p.y/PTM_RATIO); b2Body *body = world->CreateBody(&bodyDef); // Define another box shape for our dynamic body. b2PolygonShape dynamicBox; dynamicBox.SetAsBox(.5f, .5f);//These are mid points for our 1m box // Define the dynamic body fixture. b2FixtureDef fixtureDef; fixtureDef.shape = &dynamicBox; fixtureDef.density = 1.0f; fixtureDef.friction = 0.3f; body->CreateFixture(&fixtureDef); sprite->setPhysicsBody(body); }
ToyBrick* ToyLayer::CreateBrick_Rectangle() { int num = CommonHelper::GetRandomNum(1, 20); //image && texture char path[255]; sprintf(path, "Images/ToyBrick/Rectangle/%d.png", num); CCImage *img = new CCImage(); img->autorelease(); if (!img->initWithImageFile(path, cocos2d::CCImage::kFmtPng)) { return NULL; } CCTexture2D *texture = new CCTexture2D(); texture->autorelease(); if (!texture->initWithImage(img)) { return NULL; } // ToyBrick *brick = ToyBrick::create(); CCSize size = texture->getContentSize(); brick->Init(texture, CCRectMake(0, 0, size.width, size.height)); //vector CCPointArray *vector = CCPointArray::create(4); vector->addControlPoint(ccp(-52, -52)); vector->addControlPoint(ccp(52, -52)); vector->addControlPoint(ccp(52, 52)); vector->addControlPoint(ccp(-52, 52)); brick->SetAsPolygon(vector); return brick; }
void CocoRoomTodayCandy::InitSprites() { pBlack = CCSprite::create("images/ranking_scrollbg.png", CCRectMake(0, 0, winSize.width, winSize.height)); pBlack->setPosition(ccp(0, 0)); pBlack->setAnchorPoint(ccp(0, 0)); pBlack->setColor(ccc3(0, 0, 0)); pBlack->setOpacity(150); this->addChild(pBlack, 0); spriteClass = new SpriteClass(); // make pop-up background spriteClass->spriteObj.push_back( SpriteObject::Create(1, "background/bg_board_brown.png1", ccp(0, 0), ccp(49, 458), CCSize(982, 1073), "", "Layer", tLayer, 1) ); spriteClass->spriteObj.push_back( SpriteObject::Create(1, "background/bg_board_yellow.png1", ccp(0, 0), ccp(75, 492), CCSize(929, 904), "", "Layer", tLayer, 1) ); spriteClass->spriteObj.push_back( SpriteObject::Create(0, "letter/letter_todaystarcandy_groupfriend_select.png", ccp(0, 0), ccp(103, 1429), CCSize(0, 0), "", "Layer", tLayer, 1) ); spriteClass->spriteObj.push_back( SpriteObject::Create(0, "button/btn_x_brown.png", ccp(0, 0), ccp(900, 1420), CCSize(0, 0), "", "Layer", tLayer, 1) ); // bottom background spriteClass->spriteObj.push_back( SpriteObject::Create(1, "background/bg_board_brown.png2", ccp(0, 0), ccp(49, 198), CCSize(982, 223), "", "Layer", tLayer, 1) ); spriteClass->spriteObj.push_back( SpriteObject::Create(1, "background/bg_board_yellow.png2", ccp(0, 0), ccp(77, 228), CCSize(929, 177), "", "Layer", tLayer, 1) ); // bottom 5 profile 중에 내 프로필 spriteClass->spriteObj.push_back( SpriteObject::CreateFromSprite(0, MyInfo::GetProfile(), ccp(0, 0), ccp(100+5, 254+11), CCSize(0,0), "", "Layer", tLayer, 5, 0, 255, 0.95f) ); spriteClass->spriteObj.push_back( SpriteObject::Create(0, "background/bg_profile.png1", ccp(0, 0), ccp(100, 254), CCSize(0, 0), "", "Layer", tLayer, 5) ); // bottom button spriteClass->spriteObj.push_back( SpriteObject::Create(0, "button/btn_red_mini.png", ccp(0, 0), ccp(750, 262), CCSize(0, 0), "", "Layer", tLayer, 1) ); spriteClass->spriteObj.push_back( SpriteObject::Create(0, "letter/letter_confirm_mini.png", ccp(0.5, 0), ccp(spriteClass->spriteObj[spriteClass->spriteObj.size()-1]->sprite->getContentSize().width/2, 27), CCSize(0, 0), "button/btn_red_mini.png", "0", NULL, 1, 1) ); }
void SkeletonCocos2D::Load(const char* skelFilename, const char* texFilenameDesc, const char* texFilename, const char* useSkeletonName) { ////////////////////////////////////////////////////////////////////////// unsigned long _size=0; char *_pFileContent = (char*)CCFileUtils::sharedFileUtils()->getFileData(CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(skelFilename) , "r", &_size); TiXmlDocument _document; _document.Parse(_pFileContent, 0, TIXML_ENCODING_UTF8); m_resource=new Skeleton2DResourceAvatar; m_resource->LoadAll(_document.RootElement()); m_skeleton->AttachResource(m_resource->GetSkeleton(useSkeletonName)); ////////////////////////////////////////////////////////////////////////// char *texDescContent = (char*)CCFileUtils::sharedFileUtils()->getFileData(CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(texFilenameDesc) , "r", &_size); TiXmlDocument xmlTexDesc; xmlTexDesc.Parse(texDescContent, 0, TIXML_ENCODING_UTF8); m_textureDesc = m_resource->AddTextureResource(xmlTexDesc.RootElement()); CCTexture2D *texture = CCTextureCache::sharedTextureCache()->addImage(CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(texFilename)); for (Skeleton2DResourceTexture::Name2SubTexture::iterator it = m_textureDesc->m_subTexs.begin() ;it != m_textureDesc->m_subTexs.end();++it) { const RString& subTexName=it->first; Skeleton2DResourceSubTexture& subData=it->second; CCSpriteFrame* spriteFrame = new CCSpriteFrame(); spriteFrame->initWithTexture(texture, CCRectMake(subData.x, subData.y, subData.width, subData.height), false, //CCPointMake(subData.pivotX,subData.pivotY), CCPointMake(0,0), CCSizeMake((float)subData.width, (float)subData.height) ); CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFrame(spriteFrame,subTexName.c_str()); } m_batchSprite = CCSpriteBatchNode::create(texFilename); addChild(m_batchSprite); UpdateBoneImages(); this->scheduleUpdate(); }
void ChipmunkTestLayer::addNewSpriteAtPosition(CCPoint pos) { #if CC_ENABLE_CHIPMUNK_INTEGRATION int posx, posy; CCNode *parent = getChildByTag(kTagParentNode); posx = CCRANDOM_0_1() * 200.0f; posy = CCRANDOM_0_1() * 200.0f; posx = (posx % 4) * 85; posy = (posy % 3) * 121; int num = 4; cpVect verts[] = { cpv(-24,-54), cpv(-24, 54), cpv( 24, 54), cpv( 24,-54), }; cpBody *body = cpBodyNew(1.0f, cpMomentForPoly(1.0f, num, verts, cpvzero)); body->p = cpv(pos.x, pos.y); cpSpaceAddBody(m_pSpace, body); cpShape* shape = cpPolyShapeNew(body, num, verts, cpvzero); shape->e = 0.5f; shape->u = 0.5f; cpSpaceAddShape(m_pSpace, shape); CCPhysicsSprite *sprite = CCPhysicsSprite::createWithTexture(m_pSpriteTexture, CCRectMake(posx, posy, 85, 121)); parent->addChild(sprite); sprite->setCPBody(body); sprite->setPosition(pos); #endif }
kMainToolBarCell::kMainToolBarCell(unsigned short _t) { char name[16]; sprintf(name, "tb%d.png",_t); _type = _t; CCTexture2D *pTextureShadow = CCTextureCache::sharedTextureCache()->addImage(name); CCSpriteFrame* shadowFrame = CCSpriteFrame::createWithTexture(pTextureShadow, CCRectMake(0, 0, pTextureShadow->getPixelsWide(), pTextureShadow->getPixelsHigh())); CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFrame(shadowFrame, name); CCSpriteFrame *spf2=CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(name); // create from sprite frames cache CCScale9Sprite *backgroundButton2 = CCScale9Sprite::createWithSpriteFrame(spf2);// content = CCControlButton::create(backgroundButton2); content->setTouchPriority(TOUCH_PRIORITY_MAINVIEW); content->setTitleColorForState(ccWHITE, CCControlStateHighlighted); content->setPreferredSize(spf2->getRect().size); content->addTargetWithActionForControlEvents(this, cccontrol_selector(kMainToolBarCell::iambeclick), CCControlEventTouchUpInside); _w = spf2->getRect().size.width; _h = spf2->getRect().size.height; content->setOpacity(0); this->addChild(content); }
bool OrgRankList::ccTouchBegan(CCTouch* touch, CCEvent* event) { unschedule(schedule_selector(OrgRankList::inertiaMove)); CCPoint touchLocation = touch->locationInView( touch->view() ); touchLocation = CCDirector::sharedDirector()->convertToGL( touchLocation ); m_ptStartNode = convertToNodeSpace( touchLocation ); last_moveTouch = touchLocation; m_ptStartGl = touchLocation; m_lastYm = 0; bool bRet = CCRect::CCRectContainsPoint(CCRectMake(20, 164, 600, 150), ccp(m_ptStartNode.x, m_ptStartNode.y + this->getPositionInPixels().y)); if (!bRet) { return false; } m_ptStart = touchLocation; m_fThisY = this->getPositionInPixels().y; return true; }
bool LineBlockMap::checkSpriteNextPointValid(CCSprite *nowNode,const CCPoint &dest) { if (!nowNode) return false; CCPoint nowPoint = nowNode->getPosition(); float dx = dest.x; float dy = dest.y; float oldx = nowPoint.x - (nowNode->getContentSize().width/2); float oldy = nowPoint.y - (nowNode->getContentSize().height/2); float oldmaxx = oldx + nowNode->getContentSize().width; float oldmaxy = oldy + nowNode->getContentSize().height; float x = dx - (nowNode->getContentSize().width/2); float y = dy - (nowNode->getContentSize().height/2); float maxx = x + nowNode->getContentSize().width; float maxy = y + nowNode->getContentSize().height; x = oldx < x ? oldx : x; y = oldy < y ? oldy : y; maxx = oldmaxx > maxx ? oldmaxx:maxx; maxy = oldmaxy > maxy ? oldmaxy : maxy; float width = maxx - x ; float height = maxy - y; CCRect rect = CCRectMake(x ,y ,width,height); return checkCollide(rect); }
bool CardSprite::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent){ //CCLog("touch one"); CCSprite* inCard = (CCSprite*)getChildByTag(tag_inCard); CCSprite* outCard = (CCSprite*)getChildByTag(tag_outCard); CCPoint touchPoint = pTouch->getLocationInView(); CCPoint pt = CCDirector::sharedDirector()->convertToGL(touchPoint); CCPoint pos = this->getPosition(); float w = inCard->boundingBox().size.width; float h = inCard->boundingBox().size.height; CCRect rect = CCRectMake(pos.x - w/2, pos.y - h/2 , w, h); //CCLog("touch two"); //CCLog("this box is %f---%f", rect.size.width, rect.size.height); if(rect.containsPoint(pt)){ if(!(this->isVisible()) || _isDone){ CCLog("no touch"); return true; } if(isReady && this->getgameScene()->isOkForClip() && this->isVisible()){ m_isOpened = true; //CCLog("containsPoint"); CCLog("touch three"); this->openCard(); } return true; }else{ //return true; } return false; }
// on "init" you need to initialize your instance bool LevelGameScene::init() { if ( !CCLayerColor::initWithColor( ccc4(100, 100, 100, 255) ) ) { return false; } CCSize vs = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); // Fondo con la textura de madera ccTexParams tp = { GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT}; CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage("purty_wood.png"); texture->setTexParameters(&tp); CCSprite* background = CCSprite::createWithTexture(texture, CCRectMake(0, 0, vs.width, vs.height)); background->setPosition( ccp( vs.width/2, vs.height/2 ) ); this->addChild(background, 1); CCMenuItem* level1 = CCMenuItemImage::create("btn_level_1.png", "btn_level_1_h.png", this, menu_selector(LevelGameScene::level1Callback)); level1->setPosition(ccp(vs.width/2 - 275, vs.height/2)); CCMenuItem* level2 = CCMenuItemImage::create("btn_level_2.png", "btn_level_2_h.png", this, menu_selector(LevelGameScene::level2Callback)); level2->setPosition(ccp(vs.width/2, vs.height/2)); CCMenuItem* level3 = CCMenuItemImage::create("btn_level_3.png", "btn_level_3_h.png", this, menu_selector(LevelGameScene::level3Callback)); level3->setPosition(ccp(vs.width/2 + 275, vs.height/2)); CCMenu* menu = CCMenu::create(level1, level2, level3, NULL); menu->setPosition(ccp(0,0)); this->addChild(menu, 5); this->setTouchEnabled(true); return true; }
AnimatedRain::AnimatedRain() { frameWidth = 164; frameHeight = 164; frameNo = 0; maxFrameNo = 2; xOffset = 0; yOffset = 0; delay_offset = 10.0f; delay = 10.0f; movementSpeed = 0.1f; nextPos = CCPointZero; isMoving = false; isInAction = false; rainTexture = CCTextureCache::sharedTextureCache()->addImage("raining.png"); rainRect = CCRectMake(0, 0, frameWidth, frameHeight); rainSprite = CCSprite::createWithTexture(rainTexture, rainRect); rainSprite->setScale(1.0f); rainSprite->setAnchorPoint(ccp(0.5, 0.5)); CCPoint rainPos = CCPointMake(30, 23); rainPos = MapHandler::getThis()->locationFromTilePos(&rainPos); MapHandler::getThis()->getMap()->addChild(rainSprite, 999999); rainSprite->setPosition(rainPos); path = CCArray::create(); path->retain(); }
/** * 停止拖动 */ bool UIButton::touchEnd(float x,float y) { bool tag = false; if (_editable && _touchIn) { this->doEvent(UIBase::EVENT_EDIT_DOWN,this); tag = true; } if (_editable) return false; CCPoint pos = ccp(x,y); pos = this->convertToNodeSpace(pos); if (_up && _down && _touchIn) { CCRect rect = CCRectMake( _up->getPosition().x - (_up->getContentSize().width/2), _up->getPosition().y - (_up->getContentSize().height/2), _up->getContentSize().width, _up->getContentSize().height); _up->setVisible(true); _down->setVisible(false); if (_move) { _move->setVisible(false); } if (rect.containsPoint(pos)) { // 触发事件 doEvent(UIBase::EVENT_CLICK_DOWN,this); tag = true; } else tag = false; } _touchIn = false; return tag; }
// cpp with cocos2d-x void HelloWorld::addTarget() { CCSprite *target = CCSprite::create("Target.png", CCRectMake(0,0,27,40) ); // Determine where to spawn the target along the Y axis CCSize winSize = CCDirector::sharedDirector()->getVisibleSize(); float minY = target->getContentSize().height/2; float maxY = winSize.height - target->getContentSize().height/2; int rangeY = (int)(maxY - minY); // srand( TimGetTicks() ); int actualY = ( rand() % rangeY ) + (int)minY; // Create the target slightly off-screen along the right edge, // and along a random position along the Y axis as calculated target->setPosition( ccp(winSize.width + (target->getContentSize().width/2), CCDirector::sharedDirector()->getVisibleOrigin().y + actualY) ); this->addChild(target); // Determine speed of the target int minDuration = (int)2.0; int maxDuration = (int)4.0; int rangeDuration = maxDuration - minDuration; // srand( TimGetTicks() ); int actualDuration = ( rand() % rangeDuration ) + minDuration; // Create the actions CCFiniteTimeAction* actionMove = CCMoveTo::create( (float)actualDuration, ccp(0 - target->getContentSize().width/2, actualY) ); CCFiniteTimeAction* actionMoveDone = CCCallFuncN::create( this, callfuncN_selector(HelloWorld::spriteMoveFinished)); target->runAction( CCSequence::create(actionMove, actionMoveDone, NULL) ); // Add to targets array target->setTag(1); _targets->addObject(target); }
void CCAFCClipMapping::mapClip(int fromClipIndex, CCTexture2D* tex, CCPoint pos, CCRect texRect, bool flipX, float rotation) { ensureCapacity(); int insertion = CCUtils::binarySearch(m_sourceClipIndices, m_count, fromClipIndex); if(insertion < 0) { // get insertion point insertion = abs(insertion) - 1; // if need move, move it if(insertion < m_count) { memmove(m_sourceClipIndices + insertion + 1, m_sourceClipIndices + insertion, sizeof(int) * (m_count - insertion)); memmove(m_rules + insertion + 1, m_rules + insertion, sizeof(CCAFCClipMappingRule) * (m_count - insertion)); } // set source index m_sourceClipIndices[insertion] = fromClipIndex; // set rule m_rules[insertion].type = AFC_CMR_EXTERNAL_ATLAS; m_rules[insertion].sourceClipIndex = fromClipIndex; m_rules[insertion].ear.sheet = CCSpriteBatchNode::createWithTexture(tex); m_rules[insertion].ear.sheet->retain(); if(texRect.size.width == 0 || texRect.size.height == 0) { CCSize size = tex->getContentSizeInPixels(); m_rules[insertion].ear.texRect = CCRectMake(0, 0, size.width, size.height); } else { m_rules[insertion].ear.texRect = texRect; } m_rules[insertion].ear.pos = pos; m_rules[insertion].ear.flipX = flipX; m_rules[insertion].ear.rotation = rotation; // increase count m_count++; } }
void GameMark::onEnter() { CCNode::onEnter(); CCSize size = CCDirector::sharedDirector()->getWinSize(); this->setContentSize(size); bits = CCArray::createWithCapacity(5); //分数标题 CCSprite *title = CCSprite::create("score.png"); title->setPosition(ccp(size.width/2 + 40,size.height - 15)); title->setScale(0.5); addChild(title); //数字按位设置 for(int i = 0;i < 5;i ++){ CCSprite * shu = CCSprite::create("shu.png"); ui = shu->getTexture(); shu->setScale(0.5); shu->setTextureRect(CCRectMake(234,0,26,31)); shu->setPosition(ccp(size.width - 15 - i * 15,size.height - 15)); bits->addObject(shu); addChild(shu); } bits->retain(); mark = 0; }
bool UILoadingBarTest_Right_Scale9::init() { if (UIScene::init()) { scheduleUpdate(); CCSize widgetSize = m_pWidget->getSize(); // Add the alert UILabel *alert = UILabel::create(); alert->setText("LoadingBar right scale9 render"); alert->setFontName("Marker Felt"); alert->setFontSize(20); alert->setColor(ccc3(159, 168, 176)); alert->setPosition(ccp(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getSize().height * 2.7)); m_pUiLayer->addWidget(alert); // Create the loading bar UILoadingBar* loadingBar = UILoadingBar::create(); loadingBar->setName("LoadingBar"); loadingBar->loadTexture("cocosui/slider_bar_active_9patch.png"); loadingBar->setScale9Enabled(true); loadingBar->setCapInsets(CCRectMake(0, 0, 0, 0)); /*===*/ loadingBar->setSize(CCSizeMake(300, loadingBar->getContentSize().height)); /*=*/ loadingBar->setDirection(LoadingBarTypeRight); loadingBar->setPercent(0); loadingBar->setPosition(ccp(widgetSize.width / 2.0f, widgetSize.height / 2.0f + loadingBar->getSize().height / 4.0f)); m_pUiLayer->addWidget(loadingBar); return true; } return false; }
void XieziLayer::onEnter(){ CCLayer::onEnter(); CCSize mainSize=S_RM->getSizeWithName("xiezi_webview_size"); CCPoint mainPoint=S_RM->getPositionWithName("xiezi_main"); //添加WEBVIEW CCSize win_size=S_DR->getWinSize(); CCSize webViewSize=S_RM->getSizeWithName("xiezi_webview_size"); CCRect rect=CCRectMake(mainPoint.x-webViewSize.width/2,win_size.height-mainPoint.y-webViewSize.height/2, webViewSize.width, webViewSize.height);//UI坐标,从左上角计算 m_webView=CCWebView::create("AppStroke.html",rect); m_webView->setDelegate(this); this->addChild(m_webView); if (m_collectedCount>COLLECT_LIMIT) { m_webView->setVisible(false); }else{ m_webView->setVisible(true); } //注意收藏顺序 if (m_collected) { CCSprite* hanziSprite=CCSprite::createWithSpriteFrameName("tianzige.png"); hanziSprite->setPosition(mainPoint); CCLabelTTF* label=CCLabelTTF::create(m_hanzi->getzi().c_str(), "KaiTi.ttf", 400.0); label->setColor(ccc3(100,53,14)); label->setPosition(ccp(mainSize.width/2, mainSize.height/2)); hanziSprite->addChild(label); hanziSprite->setTag(kTagCollect); KapianCollectLayer* kapianCollectLayer=KapianCollectLayer::create(hanziSprite,kHanzi); this->addChild(kapianCollectLayer); kapianCollectLayer->collectAnimate(); } BaiduStat::onStatEvent(kBaiduOneEventStart, "Xiezi", "写字界面停留"); }
bool TutorialNode::init() { { CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this, 0, true); } { CCSprite* glassPanel = CCSprite::sprite(); glassPanel->setOpacity(0); CCSize screenSize = CCDirector::sharedDirector()->getWinSize(); glassPanel->setTextureRect(CCRectMake(0, 0, screenSize.width, screenSize.height)); addChild(glassPanel); } { CCSprite* background = CCSprite::spriteWithSpriteFrameName("tutorial_background.png"); addChild(background); } { showTutorial(); } return true; }