Example #1
0
//------------------------------------------------------------------
//
// 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(&params);
	
    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);
}
Example #2
0
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;
}
Example #3
0
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;
}
Example #4
0
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;

}
Example #5
0
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));
    }
}
Example #6
0
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);
}
Example #7
0
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;
}
Example #8
0
//===========================================================================
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;
}
Example #9
0
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;
    }
}
Example #10
0
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));
    }
}
Example #11
0
/** 
 * 检查是否在区域里
 */
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;
}
Example #12
0
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);
}
Example #13
0
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);
}
Example #14
0
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) );
}
Example #16
0
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();
}
Example #17
0
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
}
Example #18
0
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);
}
Example #19
0
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;
}
Example #20
0
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);
}
Example #21
0
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;
    
}
Example #22
0
// 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;
}
Example #23
0
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();
}
Example #24
0
/**
 * 停止拖动
 */
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;
}
Example #25
0
// 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++;
	}
}
Example #27
0
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;
}
Example #29
0
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", "写字界面停留");
}
Example #30
0
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;
}