Exemplo n.º 1
0
/* AnimatioinクラスhitAnimation関数定義
 * 返却型 : CCFiniteTimeAction
 * 仮引数 : int型変数count
 */
CCFiniteTimeAction* Animation::hitAnimation(int count) {
	CCDelayTime* delay = CCDelayTime::create(4);		//2秒ディレイ test用
	CCArray *animFrames = CCArray::create();			//CCArray型配列を初期化
	CCSpriteFrameCache *cache = CCSpriteFrameCache::sharedSpriteFrameCache();	//キャッシュより指定したファイル名のインスタンスを取得しCCSpriteFrame型のオブジェクトframeに代入
	/* 初期値0のint型変数iが
	 * count未満の間
	 * インクリメント
	 */
	for(int i=0; i<count; i++) {
		CCString* fileName =
				CCString::createWithFormat(count == 14 ? "hit%d.png" : "defeat%d.png", i);	//countが13と同値であればhit%d.pngの、違う場合はdefeat%d.pngのファイルネームを取得しfileNameに代入
		CCSpriteFrame *frame = cache->spriteFrameByName(fileName->getCString());	//キャッシュからインスタンスを取得

		//インスタンスが取得できない場合(初回読み込み時まだインスタンスが生成されていない為)
		if(!frame) {
			CCTexture2D *texture = CCTextureCache::sharedTextureCache()->addImage(fileName->getCString());			//fileNameに一致するファイルの取得
			CCRect bounds = CCRectMake(0, 0, texture->getContentSize().width, texture->getContentSize().height);	//インスタンスの座標とサイズを取得
			frame = CCSpriteFrame::createWithTexture(texture, bounds);	//テクスチャをframeに代入
		}
		animFrames->addObject(frame);	//インスタンスを配列に追加
	}
	CCAnimation* animation = CCAnimation::createWithSpriteFrames(animFrames, 0.1);	//CCSpriteFrameCacheクラスの配列を引数にCCAnimationクラスのインスタンスの生成 第二引数は1フレームの時間

	return CCAnimate::create(animation);	//CCAnimateクラスのアクションを生成して返却
}
Exemplo n.º 2
0
bool ItemLadderLR::init(CCDictionary* dict)
{
	Item::init();
	_type = Item::IT_LadderLR;

	setPositionByProperty(dict);

	// 梯子的显示
	CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage("ladder.png");
	setTexture(texture);
	setTextureRect(CCRectMake(0, 0, texture->getContentSize().width, texture->getContentSize().height));

	Common::moveNode(this, ccp(-texture->getContentSize().width / 2, 0));

	// 属性
	_LorR = 1-dict->valueForKey("LorR")->intValue();  // 一开始向左还是向右
	_ladderDis = dict->valueForKey("ladderDis")->intValue();  // 摆动的幅度

	// 梯子一个回合已经移动过的距离
	_dis = 0;
	// 梯子移动速度
	_speed = 20;
	// 标记mario在我这个梯子上
	_marioOnThisLadder = false;

	return true;
}
Exemplo n.º 3
0
void Image::replaceTexture(const char* filename, bool keepExactSize, bool async, bool keepRatio)
{
    if(async)
    {
        //Note : async will be done on next update to avoid the performance drop because of the overhead of addImageAsync,
        //and in case the image already exists (which loads the image synchronously)
        loadingImageFile = filename;
        loadingKeepExactSize = keepExactSize;
        loadingKeepRatio = keepRatio;
    }
    else
    {
        std::string originalImageFile = imageFile;
        imageFile = filename;
        CCSprite* sprite = (CCSprite*)this->getNode();
        CCSize initialSize = CCSizeMake(sprite->getContentSize().width * sprite->getScaleX(), sprite->getContentSize().height * sprite->getScaleY());
        CCTexture2D* newTexture = CCTextureCache::sharedTextureCache()->addImage(imageFile.append(".png").c_str());
        imageFile.erase(imageFile.length() - 4, 4);
        if(newTexture == NULL)
        {
            newTexture = CCTextureCache::sharedTextureCache()->addImage(imageFile.append(".jpg").c_str());
            imageFile.erase(imageFile.length() - 4, 4);
        }
        if(newTexture == NULL)
        {
#if VERBOSE_WARNING
            CCLog("Warning : Problem with asset : %s, texture not replaced", filename);
#endif
            imageFile = originalImageFile;
            return;
        }
        sprite->setTexture(newTexture);
        CCRect textureRect = CCRectMake(0, 0, newTexture->getContentSize().width, newTexture->getContentSize().height);
        //Change the textureRect to crop it if necessary
        if(keepRatio && initialSize.width / initialSize.height != textureRect.size.width / textureRect.size.height)
        {
            //initial is wider, crop top and bottom
            if(initialSize.width / initialSize.height > textureRect.size.width / textureRect.size.height)
            {
                float excessHeight = textureRect.size.height - initialSize.height / initialSize.width * textureRect.size.width;
                textureRect.origin.y = excessHeight/2;
                textureRect.size.height -= excessHeight;
            }
            //initial is taller, crop the sides
            else
            {
                float excessWidth = textureRect.size.width - initialSize.width / initialSize.height * textureRect.size.height;
                textureRect.origin.x = excessWidth/2;
                textureRect.size.width -= excessWidth;
            }
        }
        sprite->setTextureRect(textureRect);
        if(keepExactSize)
        {
            sprite->setScale(MIN(initialSize.width / sprite->getContentSize().width,
                                 initialSize.height / sprite->getContentSize().height));
        }
    }
}
Exemplo n.º 4
0
void Rope::changeImageByStatus(int _status, Hanger * _hanger)
{
	status = _status;
	CCTexture2D *pTexture;
	CCRect rect;
	// 添加根据状态换图的代码 (注意添加这里width 和 height跟随图片的宽高变换)
	switch(status)
	{
	case ROPE_STATUS_NORMAL:
		pTexture = CCTextureCache::sharedTextureCache()->addImage("youxi/shenzi.png");
		if (pTexture)
		{
			rect = CCRectZero;
			rect.size = pTexture->getContentSize();
			setTexture(pTexture);
			setTextureRect(rect);
		}
		lengthOriginal = getContentSize().height * 0.8;
		break;
	case ROPE_STATUS_THROW:
		pTexture = CCTextureCache::sharedTextureCache()->addImage("youxi/shenzi2.png");
		if (pTexture)
		{
			rect = CCRectZero;
			rect.size = pTexture->getContentSize();
			setTexture(pTexture);
			setTextureRect(rect);
		}
		lengthOriginal = getContentSize().height * 0.8;
		scaleExchange = ROPE_EXCHANGE_CONTROL_THROW;
		break;
	case ROPE_STATUS_INTERSECT:
		pTexture = CCTextureCache::sharedTextureCache()->addImage("youxi/shenzi3.png");
		if (pTexture)
		{
			rect = CCRectZero;
			rect.size = pTexture->getContentSize();
			setTexture(pTexture);
			setTextureRect(rect);
		}
		lengthOriginal = getContentSize().height * 0.8;
		break;
	case ROPE_STATUS_PULL:
		pTexture = CCTextureCache::sharedTextureCache()->addImage("youxi/shenzi4.png");
		if (pTexture)
		{
			rect = CCRectZero;
			rect.size = pTexture->getContentSize();
			setTexture(pTexture);
			setTextureRect(rect);
		}
		lengthOriginal = getContentSize().height * 0.8;
		break;
	default:
		break;
	}
	changePosition(_hanger);
}
Exemplo n.º 5
0
void _AtlasPage_createTexture (AtlasPage* self, const char* path) {
	CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage(path);
	CCTextureAtlas* textureAtlas = CCTextureAtlas::createWithTexture(texture, 4);
	textureAtlas->retain();
	self->rendererObject = textureAtlas;
    // Using getContentSize to make it supports the strategy of loading resources in cocos2d-x.
	// self->width = texture->getPixelsWide();
	// self->height = texture->getPixelsHigh();
    self->width = texture->getContentSize().width;
    self->height = texture->getContentSize().height;
}
Exemplo n.º 6
0
void UICenterItem::startProcess()
{
	valid = false;
	// 创建一个动画 自身播放时间到后将valid 设置为true
	CCAnimation* animation = CCAnimation::create();
		std::string frameNames[] = {
			std::string("skill_p_00000.png"),
			std::string("skill_p_00001.png"),
			std::string("skill_p_00002.png"),
			std::string("skill_p_00003.png"),
			std::string("skill_p_00004.png"),
			std::string("skill_p_00005.png"),
		};
	for (int i = 0; i < 3; i++)
	{
		CCTexture2D *texture = CCTextureCache::sharedTextureCache()->addImage(frameNames[i].c_str());
		
		CCSpriteFrame *frame = CCSpriteFrame::frameWithTexture(texture,CCRectMake(0,0,texture->getContentSize().width,texture->getContentSize().height));
		
		animation->addSpriteFrame(frame);
	}
	CCSprite * temp = CCSprite::create();
	this->getParent()->addChild(temp);
	temp->setPosition(this->getPosition());
	animation->setDelayPerUnit(1.5f / 2);
	animation->setRestoreOriginalFrame(true);
	temp->runAction(CCSequence::create(CCAnimate::create(animation),
		CCCallFuncND::create(this, callfuncND_selector(UICenterItem::actionEnd_setValid), (void*)temp),NULL));

}
Exemplo n.º 7
0
ToyBrick* ToyLayer::CreateBrick_Circle()
{
		int num = CommonHelper::GetRandomNum(1, 30);

		//image && texture
		char path[255];
		sprintf(path, "Images/ToyBrick/Circle/%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));
		brick->SetAsCircle(64);

		return brick;
}
Exemplo n.º 8
0
bool HeXieBag::init(const CCSize &size,const char *pngName)
{
	this->_eachHeight = 64;
	this->_eachWidth = 64;
	this->_width = size.width;
	this->_height = size.height;
	_items.resize(this->_width* this->_height);
	_eachLeftSpan = 1;
	_eachUpSpan = 1;
	// 将图片打乱放置于BAG上
	CCTexture2D *pTexture = CCTextureCache::sharedTextureCache()->addImage(pngName);
	CCSize imgSize = pTexture->getContentSize();
	eachSize = CCSizeMake(imgSize.width / this->_width,imgSize.height / this->_height);
	for (int i = 0; i < size.width ;i++)
		for (int j = 0; j < size.height;j++)
		{
			HeXieItem*item = HeXieItem::create(pTexture,
				CCRectMake(i * eachSize.width,j * eachSize.height,eachSize.width,eachSize.height));
			int id =  (size.height - j -1) * size.width + i;
			this->setItem(item,id);
			item->positionId = id;
		}
	show();
	return true;
}
Exemplo n.º 9
0
CCSpriteFrame * UICenterItem::getFrameByFileName(const char *pngName)
{
	CCTexture2D *texture = CCTextureCache::sharedTextureCache()->addImage(pngName);
		
	CCSpriteFrame *frame = CCSpriteFrame::frameWithTexture(texture,CCRectMake(0,0,texture->getContentSize().width,texture->getContentSize().height));
	return frame;
}
Exemplo n.º 10
0
ToyBrick* DancingBoneLayer::CreateArm()
{
	//image && texture
	char path[255];
	sprintf(path, "Images/DancingBone/arm.png");

	CCImage *img = new CCImage();
	img->autorelease();
	if (!img->initWithImageFile(path, 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 (24, 102)
	CCPointArray *vector = CCPointArray::create(4);
	vector->addControlPoint(ccp(-12, -50));
	vector->addControlPoint(ccp(12, -50));
	vector->addControlPoint(ccp(12, 50));
	vector->addControlPoint(ccp(-12, 50));
	brick->SetAsPolygon(vector);

	return brick;
}
Exemplo n.º 11
0
	void CCAnimation::addFrameWithFileName(const char *pszFileName)
	{
		CCTexture2D *pTexture = CCTextureCache::sharedTextureCache()->addImage(pszFileName);
		CCRect rect = CCRectZero;
		rect.size = pTexture->getContentSize();
		CCSpriteFrame *pFrame = CCSpriteFrame::frameWithTexture(pTexture, rect);
		m_pobFrames->addObject(pFrame);
	}
Exemplo n.º 12
0
bool ItemFlagPoint::init(CCDictionary* dict)
{
	Item::init();
	_Flag = this;

	_type = Item::IT_flagpoint;

	setPositionByProperty(dict);

	CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage("flag.png");
	setTexture(texture);
	setTextureRect(CCRect(0, 0, texture->getContentSize().width, texture->getContentSize().height));

	Common::moveNode(this, ccp(-texture->getContentSize().width / 2, 0));

	return true;
}
Exemplo n.º 13
0
void VRope::createRope(cocos2d::CCPoint pointA, cocos2d::CCPoint pointB, float ropeLenght) {
    
    float distance;
    if (ropeLenght < 0) {
        distance = ccpDistance(pointA,pointB);
    }else{
        distance = ropeLenght;
    }
    
	int segmentFactor = RopeSegmentFactor; //increase value to have less segments per rope, decrease to have more segments
	numPoints = distance/segmentFactor;
    
    mRopeLength = segmentFactor * numPoints;
    
	CCPoint diffVector = ccpSub(pointB,pointA);
	float multiplier = distance / (numPoints-1);
	antiSagHack = 0.1f; //HACK: scale down rope points to cheat sag. set to 0 to disable, max suggested value 0.1
    
	for(int i=0;i<numPoints;i++) {
		CCPoint tmpVector = ccpAdd(pointA, ccpMult(ccpNormalize(diffVector),multiplier*i*(1-antiSagHack)));
		VPoint* tmpPoint = new VPoint;
        tmpPoint->setPos(tmpVector.x, tmpVector.y);
        vPoints.insert(vPoints.end(), tmpPoint);
	}
    
	for(int i=0;i<numPoints-1;i++) {
        VStick tmpStick;
        tmpStick.initWith(vPoints[i], vPoints[i+1]);
		vSticks.insert(vSticks.end(), tmpStick);
	}
    
	if(spriteSheet!=NULL) {
		for(int i=0;i<numPoints-1;i++) {
            VPoint* point1 = vSticks[i].getPointA();
            VPoint* point2 = vSticks[i].getPointB();
			CCPoint stickVector = ccpSub(ccp(point1->x,point1->y),ccp(point2->x,point2->y));
			float stickAngle = ccpToAngle(stickVector);
            
            CCTexture2D* texture = spriteSheet->getTexture();
            RecordSprite* tmpSprite = new RecordSprite;
			tmpSprite->setTag(Tag_Box_RopeBatchSprite);
			tmpSprite->autorelease();
			tmpSprite->initWithTexture(texture, CCRectMake(0,0,multiplier,texture->getContentSize().height));
			ccTexParams params = {GL_LINEAR,GL_LINEAR,GL_REPEAT,GL_REPEAT};
            tmpSprite->getTexture()->setTexParameters(&params);
            tmpSprite->setPosition(ccpMidpoint(ccp(point1->x,point1->y),ccp(point2->x,point2->y)));
            tmpSprite->setRotation(-1 * CC_RADIANS_TO_DEGREES(stickAngle));
            spriteSheet->addChild(tmpSprite);
            ropeSprites.insert(ropeSprites.end(), tmpSprite);
		}

		//// LiFeng 添加
		//ropeSprites[ropeSprites.size()-1]->setOpacity(100);
	}else{
        CCAssert(false, "not init");
    }
    
}
Exemplo n.º 14
0
void MyTableViewCell::setImagePath(const char* path)
{
    CCTexture2D *tex = CCTextureCache::sharedTextureCache()->addImage(path);
    m_imageSprite->setTexture(tex);
    CCSize contentSize = tex->getContentSize();
    m_imageSprite->setTextureRect(CCRectMake(0, 0,
                                             contentSize.width, contentSize.height));
    needsLayout();
}
void AchievementNotification::showImmediately(Achievement a)
{
	mShowing = true;
	CCTexture2D* tex = CCTextureCache::sharedTextureCache()->textureForKey(fileName.c_str());
	if (tex == NULL)
	{
		tex = CCTextureCache::sharedTextureCache()->addImage(fileName.c_str());
	}
	CCSize winSize = CCDirector::sharedDirector()->getWinSize();


	CCScale9Sprite* pBoard = CCScale9Sprite::create(CCRectMake(tex->getContentSize().width/2, 0, 2, tex->getContentSize().height), fileName.c_str());
	addChild(pBoard,0,Tag_Board);
	pBoard->setPosition(ccp(winSize.width/2,winSize.height + pBoard->getContentSize().height) );

	CCSprite* pJinBei = CCSprite::create(ResManager::getManager()->getFilePath(g_public+"CJ_icon_jiangbei.png").c_str());
	pBoard->addChild(pJinBei, 1);
	pJinBei->setPosition(ccp(pJinBei->getContentSize().width, pBoard->getContentSize().height/2));

	CCLabelTTF* pName = CCLabelTTF::create(a.name.c_str(), fontStr_KlavikaBold, 40);
	pName->setColor(fontColor_Acheivement_TTF);
	CCSprite* pIcon = CCSprite::create(ResManager::getManager()->getFilePath(g_public+"CJ_icon_wancheng.png").c_str());
	int x = pName->getContentSize().width + pIcon->getContentSize().width - 420;
	if (x > 0)
	{
		pBoard->setContentSize(ccp(pBoard->getContentSize().width+x, pBoard->getContentSize().height));
	}
	pBoard->addChild(pName);

	int xoffset = 10;

	pName->setPosition(ccp(pBoard->getContentSize().width/2 + pIcon->getContentSize().width/2 + xoffset, pBoard->getContentSize().height/2));

	pBoard->addChild(pIcon);
	pIcon->setPosition(ccp(pName->getPositionX() - pName->getContentSize().width/2 - pIcon->getContentSize().width/2 - xoffset, pName->getPositionY()));

	Achievement* achievementCopy = new Achievement(a);
//	*achievementCopy = a;
	temp_Must_Delete.insert(temp_Must_Delete.end(),achievementCopy);

	pBoard->runAction(CCSequence::create(
		CCMoveTo::create(0.5f,ccp(pBoard->getPositionX(),winSize.height-pBoard->getContentSize().height/2)),
		CCDelayTime::create(0.1f),
		CCCallFuncND::create(this,SEL_CallFuncND(&AchievementNotification::boardShowing),achievementCopy),
		CCDelayTime::create(1.3f),
		CCMoveTo::create(0.2f,ccp(pBoard->getPositionX(),winSize.height+pBoard->getContentSize().height)),
		CCFadeTo::create(0.1f,0),
		CCCallFuncN::create(this,SEL_CallFuncN(&AchievementNotification::boardShowEnd)),NULL));

	createPar(ccp(winSize.width/2,winSize.height),parFileName.c_str(),pBoard->getContentSize().width * 1.2f,pBoard->getContentSize().height);

	Music::sharedMusicPlayer()->playEffectSound("achievement.wav");

	CCLog("AchievementNotification::showImmediately name = %s" ,a.name.c_str());
}
Exemplo n.º 16
0
void CSharpTollgate::setStageList(const vector<CStage>& stageList, int chapter, int openChapter)
{
	m_stageList = stageList;
	m_chapter = chapter;	
	m_openChapter = openChapter;
	m_tableView->setCountOfCell(stageList.size());
	m_tableView->reloadData();

	CTableViewCell *cell = m_tableView->cellAtIndex(3);
	cell->setPositionX(cell->getPositionX()+115);

	CImageView *name = (CImageView*)(m_ui->findWidgetById("name"));
	CCTexture2D *texture = CCTextureCache::sharedTextureCache()->addImage(CCString::createWithFormat("tollgate/chapter_%d.png",chapter)->getCString());
	if(!texture)
	{
		texture = CCTextureCache::sharedTextureCache()->addImage("tollgate/chapter_1.png");
	}
	name->setTexture(texture);
	name->setTextureRect(CCRectMake(0,0,texture->getContentSize().width,texture->getContentSize().height));
}
Exemplo n.º 17
0
bool ItemFireString::init(CCDictionary * dict)
{
	Item::init();
	_type = IT_FIRESTRING;
	setPositionByProperty(dict);

	CCTexture2D * bossBullet = CCTextureCache::sharedTextureCache()->addImage("bossBullet.png");
	setTexture(bossBullet);
	setTextureRect(CCRectMake(0, 0, bossBullet->getContentSize().width, bossBullet->getContentSize().height));
	setScale(.6f);

	setAnchorPoint(ccp(0, 0.5f));

	int begAngle  = dict->valueForKey("begAngle")->intValue();
	setRotation(begAngle);
	int time = dict->valueForKey("time")->intValue();
	runAction(CCRepeatForever::create(CCRotateBy::create(time, 360)));

	return true;
}
Exemplo n.º 18
0
CCMenuItemImage* TMenuItemImage::create(const char *img, CCObject* target, SEL_MenuHandler selector)
{
	CCMenuItemImage *pRet = new TMenuItemImage();
    CCTexture2D* ptex = CCTextureCache::sharedTextureCache()->addImage( img );
    int tw = ptex->getContentSize().width / 4;
    int th = ptex->getContentSize().height;
    CCNode* normal = CCSprite::createWithTexture( ptex, CCRect(0, 0, tw, th ) );
	CCNode *selected = CCSprite::createWithTexture(ptex, CCRect( tw*2, 0, tw, th) );
	CCNode *disabled = CCSprite::createWithTexture( ptex, CCRect( tw*3, 0, tw, th) );
    pRet->initWithNormalSprite(normal, selected, disabled, target, selector);
    pRet->autorelease();
    return pRet;
}
Exemplo n.º 19
0
// on "init" you need to initialize your instance
bool MainMenuScene::init()
{
    CCSprite *fondo = CCSprite::create("fondo.png");
    fondo->setPosition(VisibleRect::center());
    addChild(fondo);
    
    CCSprite *leftGrass = CCSprite::create("grass_left.png");
    leftGrass->setAnchorPoint(ccp(0,0));
    leftGrass->setPosition(VisibleRect::leftBottom());
    addChild(leftGrass);
    CCSprite *rightGrass = CCSprite::create("grass_right.png");
    rightGrass->setAnchorPoint(ccp(1,0));
    rightGrass->setPosition(VisibleRect::rightBottom());
    addChild(rightGrass);
    
    CCSprite *spriteLogo = CCSprite::create("logo_opciones.png");
    spriteLogo->setPosition(ccp(VisibleRect::center().x, (VisibleRect::top().y - (spriteLogo->getContentSize().height / 2) - 20)));
    addChild(spriteLogo);
    
    int mySize = VisibleRect::center().y / 3;
    
    CCTexture2D *texture = CCTextureCache::sharedTextureCache()->addImage("botoia_normal.png");
    
    CCPoint anchorPoint = ccp(0.5f, 0.5f);
    
    CCLabelTTF *pLabel1 = CCLabelTTF::create("Jokatu", "fonts/PT_Sans-Web-Bold.ttf", 30.0);
    CCLabelTTF *pLabel2 = CCLabelTTF::create("Sailkapena", "fonts/PT_Sans-Web-Bold.ttf", 30.0);
    CCLabelTTF *pLabel3 = CCLabelTTF::create("Honi Buruz", "fonts/PT_Sans-Web-Bold.ttf", 30.0);
    
    // Button JOKATU
    SpriteButton *pButton1 = SpriteButton::create(texture ,this, callfuncO_selector(MainMenuScene::menuSelector), 1.0f);
    pButton1->setTag(1);
    pButton1->setAnchorPoint(anchorPoint);
    pButton1->setPosition(ccp(VisibleRect::center().x, (mySize * 3) - texture->getContentSize().height /2));
    pLabel1->setPosition(ccp(VisibleRect::center().x, (mySize * 3) - texture->getContentSize().height /2));
    
    // Button SAILKAPENA
    SpriteButton *pButton2 = SpriteButton::create(texture ,this, callfuncO_selector(MainMenuScene::menuSelector), 1.0f);
    pButton2->setTag(2);
    pButton2->setAnchorPoint(anchorPoint);
    pButton2->setPosition(ccp(VisibleRect::center().x, (mySize * 2) - texture->getContentSize().height /2));
    pLabel2->setPosition(ccp(VisibleRect::center().x, (mySize * 2) - texture->getContentSize().height /2));
    
    // Button HONI BURUZ
    SpriteButton *pButton3 = SpriteButton::create(texture ,this, callfuncO_selector(MainMenuScene::menuSelector), 1.0f);
    pButton3->setTag(3);
    pButton3->setAnchorPoint(anchorPoint);
    pButton3->setPosition(ccp(VisibleRect::center().x, mySize - texture->getContentSize().height /2));
    pLabel3->setPosition(ccp(VisibleRect::center().x, mySize - texture->getContentSize().height /2));
    
    addChild(pButton1);
    addChild(pLabel1);
    addChild(pButton2);
    addChild(pLabel2);
    addChild(pButton3);
    addChild(pLabel3);
    
	return true;
}
Exemplo n.º 20
0
bool BlurSprite::initWithFile(const char* filename)
{
	CCAssert(filename != NULL, "Invalid filename for sprite");

	CCTexture2D *pTexture = CCTextureCache::sharedTextureCache()->addImage(filename);
	if (pTexture)
	{
		CCRect rect = CCRectZero;
		rect.size = pTexture->getContentSize();
		return initWithTexture(pTexture, rect);
	}

	return false;
}
Exemplo n.º 21
0
CCSpriteFrame * CCNodeLoader::parsePropTypeSpriteFrame(CCNode * pNode, CCNode * pParent, CCBReader * pCCBReader, const char *pPropertyName) 
{
    CCString * spriteSheet = pCCBReader->readCachedString();
    CCString * spriteFile = pCCBReader->readCachedString();
    
    CCSpriteFrame *spriteFrame = NULL;
    if (spriteFile->length() != 0)
    {
        if (spriteSheet->length() == 0)
        {
            CCTexture2D * texture = CCTextureCache::sharedTextureCache()->addImage(spriteFile->getCString());
            CCRect bounds = CCRectMake(0, 0, texture->getContentSize().width, texture->getContentSize().height);
            spriteFrame = CCSpriteFrame::createWithTexture(texture, bounds);
        }
        else 
        {
            CCSpriteFrameCache * frameCache = CCSpriteFrameCache::sharedSpriteFrameCache();
            
            // Load the sprite sheet only if it is not loaded
            if (pCCBReader->getLoadedSpriteSheet().find(spriteSheet->getCString()) == pCCBReader->getLoadedSpriteSheet().end())
            {
                frameCache->addSpriteFramesWithFile(spriteSheet->getCString());
                pCCBReader->getLoadedSpriteSheet().insert(spriteSheet->getCString());
            }
            
            spriteFrame = frameCache->spriteFrameByName(spriteFile->getCString());
        }
        
        if (pCCBReader->getAnimatedProperties()->find(pPropertyName) != pCCBReader->getAnimatedProperties()->end())
        {
            pCCBReader->getAnimationManager()->setBaseValue(spriteFrame, pNode, pPropertyName);
        }
    }
    
    return spriteFrame;
}
Exemplo n.º 22
0
bool CCSprite::initWithFile(const char *pszFilename)
{
    CCAssert(pszFilename != NULL, "Invalid filename for sprite");

    CCTexture2D *pTexture = CCTextureCache::sharedTextureCache()->addImage(pszFilename);
    if (pTexture)
    {
        CCRect rect = CCRectZero;
        rect.size = pTexture->getContentSize();
        return initWithTexture(pTexture, rect);
    }

    // don't release here.
    // when load texture failed, it's better to get a "transparent" sprite then a crashed program
    // this->release(); 
    return false;
}
Exemplo n.º 23
0
NS_CC_BEGIN
void TFFrameInfo::getFrames(std::vector<CCSpriteFrame*> &frames)
{
	frames.clear();
	for ( std::vector<std::string>::iterator iter = pngs.begin(); iter != pngs.end();++iter)
	{
		std::string &pngName = *iter;
		CCTexture2D *texture = CCTextureCache::sharedTextureCache()->addImage(pngName.c_str());
		
		CCSpriteFrame *frame = CCSpriteFrame::frameWithTexture(texture,CCRectMake(0,0,texture->getContentSize().width,texture->getContentSize().height));
		if (frame)
		{
			frames.push_back(frame);
			frame->retain();
			frame->setOffset(ccp(0,0));
		}
	}
}
Exemplo n.º 24
0
bool DefaultLayer::init()
{
    if (!CCLayer::init())
        return false;

    // ask director the window size
    CCSize window_size = CCDirector::sharedDirector()->getWinSize();

	CCImage* temp_img = new CCImage();
	temp_img->initWithImageFile("atlas.png");

	CCTexture2D* texture = new CCTexture2D();
	texture->initWithImage(temp_img);
	texture->autorelease();
	delete temp_img;

	// this will have a capacity for 4 sprites instead of the default which is 20
	CCSpriteBatchNode* batch = CCSpriteBatchNode::createWithTexture(texture, 4);

	// Since I don't have HD versions of the image but I've set enableRetinaDisplay to true, the framework
	// is using a scaling factor of 2 to divide the image by. This is because it thinks the image was from the low resolution
	// version, which would mean that running in retina (i.e. 2x larger screen) should make the image look half as big. By calling
	// getContentSize over getContentSizeInPixels I'm getting the size of the image as it is represented for the appropriate
	// draw mode. If I actually had HD art, I believe I could just call getContentSizeInPixels and that they'd both be the same.
	CCSize tex_size(texture->getContentSize());

	for (int i = 0; i < 4; i++)
	{
		CCSprite* sprite = CCSprite::create();

		// The texture rect coords are luckily normal and just like a Photoshop canvas
		CCRect r((i % 2) == 0 ? 0 : tex_size.width / 2.0f, (i / 2) == 0 ? 0 : tex_size.height / 2.0f, tex_size.width/2.0f, tex_size.height/2.0f);

		sprite->initWithTexture(texture, r);
		sprite->setPosition(ccp(sprite->getContentSize().width / 2.0f + (i % 2)*200, sprite->getContentSize().height + (i/2)*150));
		batch->addChild(sprite);
	}

	addChild(batch);

    return true;
}
Exemplo n.º 25
0
CCTexture2D* getTexture(std::string theImageFullPath, CCRect& theTextureRect){
	// try to load from sprite sheet
	std::string anImageFileName;
	int aLastSlashIndex = MAX((int)theImageFullPath.find_last_of('/'), (int)theImageFullPath.find_last_of('\\'));
	if (aLastSlashIndex != std::string::npos) {
		anImageFileName = theImageFullPath.substr(aLastSlashIndex + 1);
	} else {
		anImageFileName = theImageFullPath;
	}
	CCSpriteFrame *aSpriteFrame = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(anImageFileName.c_str());
	if (aSpriteFrame) {
		theTextureRect = aSpriteFrame->getRect();
		return aSpriteFrame->getTexture();
	}
	
	CCTexture2D* aTexture = CCTextureCache::sharedTextureCache()->addImage(theImageFullPath.c_str());
	theTextureRect.origin = CCPointZero;
	theTextureRect.size = aTexture->getContentSize();
	return aTexture;
}
Exemplo n.º 26
0
 // Loads a texture frame from a file
 CCSpriteFrame *CocosTile::loadSpriteFrame(std::string filename)
 {
     // First attempt to get it from the frame cache, in case it was already loaded from an atlas
     CCSpriteFrame *retVal = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(filename.c_str());
     
     // If not found, create the frame by loading texture
     if (!retVal)
     {
         CCTexture2D *frameTexture = CCTextureCache::sharedTextureCache()->addImage(filename.c_str());
         if (frameTexture)
         {
             retVal = CCSpriteFrame::frameWithTexture(frameTexture, 
                                                      CCRect(0, 0, frameTexture->getContentSize().width, frameTexture->getContentSize().height));
             
             // Add to frame cache
             CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFrame(retVal, filename.c_str());
         }
     }
     
     return retVal;        
 }
Exemplo n.º 27
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;
}
Exemplo n.º 28
0
	InputPad() {
		_pad = CCSprite::create(s_InputPad);
        this->addChild(_pad,Z_INPUTPAD);

        CCTexture2D* gridTexture = CCTextureCache::sharedTextureCache()->addImage(s_GridUp);
	    CCSize s = gridTexture->getContentSize();
        CCPoint gridOrigin(ccp(0,0));
    
	    for(int i=0;i<ROW_NUM;i++) {
		    for(int j=0;j<COL_NUM;j++) {
			    Grid* pGrid = Grid::GridWithTexture(gridTexture,(i*COL_NUM+j+1),true);
                float x = gridOrigin.x+j*(g_gridSize.width+1)+1;
                float y = gridOrigin.y+i*(g_gridSize.height+1)+1;
                //CCLOG("input grid:x:%0.1f, y:%0.1f",x,y);
			    pGrid->GetNode()->setPosition(ccp(x,y));
                pGrid->GetNode()->setAnchorPoint(ccp(0.0f,0.0f));
			    _pad->addChild(pGrid->GetNode(), Z_INPUT_GRID_NUMBER);
		    }
	    }

        //CCLayerColor* pBackGround = CCLayerColor::create(ccc4(255,255,0,255),90,90);
        //this->addChild(pBackGround,0);
    }
Exemplo n.º 29
0
void Recipe44::makeSprite() {
    CCSize size = CCDirector::sharedDirector()->getWinSize();
    
    // 元画像のテクスチャを作成
    CCTexture2D *pTexture = CCTextureCache::sharedTextureCache()->addImage("sample.png");
    // 元画像のサイズを取得
    CCRect rect = CCRectZero;
    rect.size = pTexture->getContentSize();
    
    // 左半分のスプライトを生成
    CCRect leftRect = CCRectMake(rect.origin.x, rect.origin.y, rect.size.width/2.0f, rect.size.height);
    CCSprite* spriteL = CCSprite::createWithTexture(pTexture, leftRect);
    
    CCPoint pointL = ccp(spriteL->getContentSize().width/2, size.height/4*3);
    spriteL->setPosition(pointL);
    this->addChild(spriteL);
    
    // 右半分のスプライトを生成
    CCRect rightRect = CCRectMake(rect.origin.x+rect.size.width/2, rect.origin.y, rect.size.width/2.0f, rect.size.height);
    CCSprite* spriteR = CCSprite::createWithTexture(pTexture, rightRect);
    CCPoint pointR = ccp(size.width-spriteR->getContentSize().width/2, size.height/4*3);
    spriteR->setPosition(pointR);
    this->addChild(spriteR);
}
Exemplo n.º 30
0
void SpriteStone::initStone(int id)
{
	struct
	{
		TYPE type;
		int row;
		int col;
	} proper[9] = {
		{ CHE, 0, 0 },
		{ MA, 0, 1 },
		{ XIANG, 0, 2 },
		{ SHI, 0, 3 },
		{ BING, 3, 2 },
		{ BING, 3, 0 },
		{ PAO, 2, 1 },
		{ JIANG, 0, 4 },
		{ BING, 3, 4 }
	};
	_id = id;
	_red = id < 16;
	if (id <= 8)
	{
		this->_row = proper[id].row;
		this->_col = proper[id].col;
		this->_type = proper[id].type;
	}
	if (id > 8 && id < 16)
	{
		int index = id - 9;
		this->_row = proper[index].row;
		this->_col = 8 - proper[index].col;
		this->_type = proper[index].type;
	}
	if (id >= 16)
	{
		int index = id - 16;
		if (index <= 8)
		{
			this->_row = 9 - proper[index].row;
			this->_col = 8 - proper[index].col;
			this->_type = proper[index].type;
		}
		if (index > 8)
		{
			index -= 9;
			this->_row = 9 - proper[index].row;
			this->_col = proper[index].col;
			this->_type = proper[index].type;
		}
	}

	// 显示在屏幕上
	CCTexture2D * texture;
	
	switch (_type)
	{
	case SpriteStone::CHE:
		if (_red)
			texture = CCTextureCache::sharedTextureCache()->addImage("rche.png");
		else
			texture = CCTextureCache::sharedTextureCache()->addImage("bche.png");
		break;
	case SpriteStone::MA:
		if (_red)
			texture = CCTextureCache::sharedTextureCache()->addImage("rma.png");
		else
			texture = CCTextureCache::sharedTextureCache()->addImage("bma.png");
		break;
	case SpriteStone::PAO:
		if (_red)
			texture = CCTextureCache::sharedTextureCache()->addImage("rpao.png");
		else
			texture = CCTextureCache::sharedTextureCache()->addImage("bpao.png");
		break;
	case SpriteStone::BING:
		if (_red)
			texture = CCTextureCache::sharedTextureCache()->addImage("rbing.png");
		else
			texture = CCTextureCache::sharedTextureCache()->addImage("bzu.png");
		break;
	case SpriteStone::JIANG:
		if (_red)
			texture = CCTextureCache::sharedTextureCache()->addImage("rshuai.png");
		else
			texture = CCTextureCache::sharedTextureCache()->addImage("bjiang.png");
		break;
	case SpriteStone::SHI:
		if (_red)
			texture = CCTextureCache::sharedTextureCache()->addImage("rshi.png");
		else
			texture = CCTextureCache::sharedTextureCache()->addImage("bshi.png");
		break;
	case SpriteStone::XIANG:
		if (_red)
			texture = CCTextureCache::sharedTextureCache()->addImage("rxiang.png");
		else
			texture = CCTextureCache::sharedTextureCache()->addImage("bxiang.png");
		break;
	}
	// 显示纹理
	setTexture(texture);
	setTextureRect(CCRectMake(0, 0, texture->getContentSize().width, texture->getContentSize().height));

	// 设置位置
	setPosition(fromPlate());
	// 缩放

	setScale(_scaleValue);
}