Ejemplo n.º 1
0
bool
MCFaceBox::init(const char *aFaceFilepath, const char *aBoxFilepath)
{
    
    do {
        CCImage *aFaceImage = new CCImage;
        CC_BREAK_IF(! aFaceImage);
        CCImage *aBoxImage = new CCImage;
        CC_BREAK_IF(! aBoxImage);
        CCTexture2D *aFaceTexture = new CCTexture2D;
        CC_BREAK_IF(! aFaceTexture);
        CCTexture2D *aBoxTexture = new CCTexture2D;
        CC_BREAK_IF(! aBoxTexture);
        
        CC_BREAK_IF(! aFaceImage->initWithImageFile(aFaceFilepath));
        CC_BREAK_IF(! aBoxImage->initWithImageFile(aBoxFilepath));
        
        CC_BREAK_IF(! aFaceTexture->initWithImage(aFaceImage));
        CC_BREAK_IF(! aBoxTexture->initWithImage(aBoxImage));
        
        return init(aFaceTexture, aBoxTexture);
    } while (0);
    
    return false;
}
Ejemplo n.º 2
0
CCTexture2D* Util::getGrayTexture(const char* filename){
		typedef enum {  
			RED = 0,  
			GREEN = 1,  
			BLUE = 2,  
			ALPHA = 3  
		} PIXELS;  
		CCImage *image = new CCImage();
		image->initWithImageFile(filename);
		unsigned char* pixels = image->getData();
		int len = image->getDataLen();
		uint32_t *p = (uint32_t *)pixels;
		for(int i=0;i<len;i++){
			uint8_t *rgbaPixel = (uint8_t *) &p[i];
			//uint32_t gray = 0.3 * rgbaPixel[RED] + 0.59 * rgbaPixel[GREEN] + 0.11 * rgbaPixel[BLUE];
			uint32_t gray = 1.2*rgbaPixel[RED] + 1.0*rgbaPixel[GREEN] + 0.0*rgbaPixel[BLUE];
			// set the pixels to gray  
			rgbaPixel[RED] = gray;  
			rgbaPixel[GREEN] = gray;  
			rgbaPixel[BLUE] = gray;  
		} 

		CCTexture2D* texture = new CCTexture2D();  
		texture->autorelease();
		texture->initWithImage(image);
		image->release();

		return texture;
}
Ejemplo n.º 3
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;
}
Ejemplo n.º 4
0
AnimatedCell::AnimatedCell(int cellX, int cellY, int spacing, const char* pngFileName) {
	this->setSpace(spacing);
	this->setPngFileName(pngFileName);

	animation_ = CCAnimation::create();
	CCImage* image = new CCImage();
	image->initWithImageFile(pngFileName);
	CCTexture2D* texture = new CCTexture2D();
	texture->initWithImage(image);

	oneWidth_ = texture->getPixelsWide() / spacing;
	oneHeight_ = texture->getPixelsHigh();

	for (int i=0; i<spacing; i++) {
		animation_->addSpriteFrameWithTexture(texture, 
			CCRectMake(i*oneWidth_, 0, oneWidth_, oneHeight_));
	}
	CCSpriteFrame* frm = ((CCAnimationFrame*)(animation_->getFrames()->objectAtIndex(0)))->getSpriteFrame();

	this->initWithSpriteFrame(frm);
	animation_->setDelayPerUnit(0.5f);

	animate_ = CCRepeatForever::create(CCAnimate::create(animation_));

	setCell(cellX, cellY);
}
Ejemplo n.º 5
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;
}
Ejemplo n.º 6
0
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !CCLayer::init() )
    {
        return false;
    }
    
    this->setTouchEnabled(true);
    
    CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
    CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();

    CCImage *image = new CCImage();
    image->initWithImageFile("example.png");
    
    texture = new CCTexture2DMutable();
    texture->initWithImage(image);
    
    sprite = CCSprite::create();
    sprite->initWithTexture(texture);
    sprite->setPosition(ccp(origin.x + visibleSize.width/2, origin.y + visibleSize.height/2));
    this->addChild(sprite);
    
    CCLabelTTF *label = CCLabelTTF::create("", "Verdana-BoldItalic", 15);
    label->setColor(ccWHITE);
    label->setTag(1);
    label->setPosition(ccp(origin.x + visibleSize.width/2, origin.y + visibleSize.height/2 - 75));
    label->setString("Touch sprite");
    this->addChild(label);
    
    return true;
}
Ejemplo n.º 7
0
CCTexture2D* MapTexturePool::addImage(const char* path, bool keep)
{
	NDAsssert(path != NULL);

	CCTexture2D* pkTexture = NULL;

	// MUTEX:
	// Needed since addImageAsync calls this method from a different thread

	pkTexture = (CCTexture2D*)m_pkDict->objectForKey(path);

	if (!pkTexture)
	{
		CCImage image;
		if (image.initWithImageFile(path))
		{
			//todo
			//tex = [ [CCTexture2D alloc] initWithImage:image keepData:keep];
		}

		if (pkTexture)
		{
			m_pkDict->setObject(pkTexture, path);
			pkTexture->release();
		}
	}

	return pkTexture;
}
Ejemplo n.º 8
0
// 주어진 파일로부터 RGBA를 가져온다.
void HelloWorld::GetPaletteFromFile(char *filename, unsigned char *pPalette, int nNumColors)
{
	CCImage *pImage = new CCImage();
	CCTexture2D *pTex = new CCTexture2D();

	pImage->initWithImageFile(filename, CCImage::kFmtPng);

	memcpy(pPalette, pImage->getData(), nNumColors * 4); // RGBA = 4 bytes
}
Ejemplo n.º 9
0
Bitmap::Bitmap(const char *filename) : p(0)
{
	p = new BitmapPrivate;

	string* path = new string(SceneMain::workPath+filename);

	CCImage* image = new CCImage;
	string filename_c=*path;
	if (path->find(".png") == string::npos)
	{
		filename_c=*path + ".png";
		if (filename_c.find("Characters") != string::npos)
		{
			int pos = filename_c.find('-');
			if(pos!=string::npos)
			{
				char c = filename_c[pos+1];
				filename_c[pos+1]=toupper(c);
			}
		}
	}

	bool ret =image->initWithImageFile(filename_c.c_str());

	if (!ret)
	{
		filename_c = *path + ".jpg";
		ret = image->initWithImageFile(filename_c.c_str(),CCImage::kFmtJpg);
	}

	if (ret)
	{
		ThreadHandler hander={handler_method_create_sprite,(int)this,(void*)image};
		pthread_mutex_lock(&s_thread_handler_mutex);
		p->m_filename = filename_c;
		p->m_width = image->getWidth();
		p->m_height = image->getHeight();
		ThreadHandlerMananger::getInstance()->pushHandler(hander,this);
		pthread_mutex_unlock(&s_thread_handler_mutex);
	}


}
Ejemplo n.º 10
0
bool MainMenuBtnLayer::init()
{
    bool bRet = false;
    do
    {
        // Super init first
        CC_BREAK_IF(!CCLayer::init());

        CCSize size = CCDirector::sharedDirector()->getWinSize();


        CCImage menufile;
        menufile.initWithImageFile("Buttons.png");
        CCTexture2D *menuTexture = new CCTexture2D();
        menuTexture->initWithImage(&menufile);

        CCMenuItemSprite *startgameitem = CCMenuItemSprite::create(CCSprite::createWithTexture(menuTexture, CCRectMake(6, 2, 166, 28)),
                                          CCSprite::createWithTexture(menuTexture, CCRectMake(6, 35, 166, 28)),
                                          CCSprite::createWithTexture(menuTexture, CCRectMake(6, 70, 166, 28)),
                                          this, menu_selector (MainMenuBtnLayer::menucallback));
        startgameitem->setTag(MAINMENU_ID_START);
        CCMenuItemSprite *settings = CCMenuItemSprite::create(CCSprite::createWithTexture(menuTexture, CCRectMake(188, 2, 166, 28)),
                                     CCSprite::createWithTexture(menuTexture, CCRectMake(188, 35, 166, 28)),
                                     CCSprite::createWithTexture(menuTexture, CCRectMake(188, 70, 166, 28)),
                                     this, menu_selector (MainMenuBtnLayer::menucallback));
        settings->setTag(MAINMENU_ID_SETTING);
        CCMenuItemSprite *about = CCMenuItemSprite::create(CCSprite::createWithTexture(menuTexture, CCRectMake(370, 2, 166, 28)),
                                  CCSprite::createWithTexture(menuTexture, CCRectMake(370, 35, 166, 28)),
                                  CCSprite::createWithTexture(menuTexture, CCRectMake(370, 70, 166, 28)),
                                  this, menu_selector (MainMenuBtnLayer::menucallback));
        about->setTag(MAINMENU_ID_ABOUT);
        CCMenuItemSprite *quit = CCMenuItemSprite::create(CCSprite::createWithTexture(menuTexture, CCRectMake(552, 2, 166, 28)),
                                 CCSprite::createWithTexture(menuTexture, CCRectMake(552, 35, 166, 28)),
                                 CCSprite::createWithTexture(menuTexture, CCRectMake(552, 70, 166, 28)),
                                 this, menu_selector (MainMenuBtnLayer::menucallback));
        quit->setTag(MAINMENU_ID_QUIT);

        CCMenu *menu = CCMenu::create(startgameitem, settings, about, quit, NULL);
        menu->alignItemsVerticallyWithPadding(10);
        menu->setPosition(ccp(size.width * 0.5f, size.height * 0.5f));
        this->addChild(menu);

        bRet = true;

    } while(0);

    return bRet;
}
Ejemplo n.º 11
0
void HelloWorld::updateSquare(float tm){
	for(int i = 0; i < 64; i++){
		CCSprite *sprite = diamonds[i];

		char str[20];
		CCImage *image = new CCImage();

		int color = getDiamond(str);
		base[i] = color;
		image->initWithImageFile(str, CCImage::kFmtJpg);

		CCTexture2D* texture = new CCTexture2D();
		texture->initWithImage(image);
		sprite->setTexture(texture);
	}
}
Ejemplo n.º 12
0
/*
 * setup 设置texture
 */
void UINumber::setup()
{
	//UIImage *image = [UIImage imageNamed:@"number.png"];
	CCImage *image = new CCImage();
	image->initWithImageFile("number.png");
	image->autorelease();

    //m_texture = [[CCTexture2D alloc]initWithImage:image];
	m_texture = new CCTexture2D();
	m_texture->autorelease();
	m_texture->initWithImage(image);

	//CCSpriteFrame *frame = [CCSpriteFrame frameWithTexture:m_texture rect:CGRectMake(0, 0, NUM_WIDTH, NUM_HEIGHT)];
    CCSpriteFrame *frame = CCSpriteFrame::createWithTexture(m_texture, CCRectMake(0, 0, NUM_WIDTH, NUM_HEIGHT));
	this->setDisplayFrame(frame);
}
Ejemplo n.º 13
0
void HelloWorld::ccTouchEnded(cocos2d::CCTouch *pTouches, cocos2d::CCEvent *pEvent){
	if(m_score<0){
		return;
	}
	CCPoint  point = pTouches->getLocation();
	char pos[100];

	int y_ = (int)((point.y-diamondRect.origin.y)/dh);
	int y = 7-y_;
	int x  = (int)((point.x-diamondRect.origin.x)/dw);
	int result[64] = {0};
	if(y>=8||x>=8){
		return;
	}
	int count = handlerTouchInSquare(y*8+x, result);
	if(count < 3)
		return;

	for(int i = 0; i < count; i++){
		CCSprite *sprite = diamonds[result[i]];
		CCRotateBy *rotateAct = new CCRotateBy();
		rotateAct->initWithDuration(0.2f, 90.0f);
		sprite->runAction(rotateAct);
		
		char str[20];
		CCImage *image = new CCImage();
		
		int color = getDiamond(str);
		base[result[i]] = color;
		image->initWithImageFile(str, CCImage::kFmtJpg);

		CCTexture2D* texture = new CCTexture2D();
		texture->initWithImage(image);
		sprite->setTexture(texture);
	}
	//delete rotateAct;
	m_score += 5*count;
	char str[20];
	sprintf(str, "Score: %d", m_score);
	pLabelScore->setString(str);
	//fflush(file);
}
Ejemplo n.º 14
0
bool CCAsyncSprite::initWithUrl(const char *pszUrl){
    string url(pszUrl);
    size_t pos = url.find_last_of('/');
    if (pos != string::npos) {
        m_strFileName = url.substr(pos, url.size()+1);
    }
    else {
        return false;
    }
    
    CCImage *image = new CCImage();
    if (image->initWithImageFile((CCFileUtils::sharedFileUtils()->getWritablePath()+m_strFileName).c_str())){
        setSpriteWithCCImage(image);
    }
    else {
        NetworkOperation *op = new NetworkOperation(pszUrl);
        op->setDelegate(this);
        this->retain();
        NetworkOperationQueue::sharedInstance()->addOperation(op);
    }
    return true;
}
Ejemplo n.º 15
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;
}
Ejemplo n.º 16
0
bool MainMenuCtrlLayer::init()
{
    bool ret = false;
    
    do {
        CC_BREAK_IF(!CCLayer::init());
        
        CCSize winSize = CCDirector::sharedDirector()->getWinSize();
        
        // 菜单
        // 菜单纹理
        CCImage menuImage;
        menuImage.initWithImageFile("menu.png");
        CCTexture2D *menuTexture = new CCTexture2D();
        menuTexture->initWithImage(&menuImage);
        
        // 菜单选项
        CCMenuItemSprite *newGameMenuItem = CCMenuItemSprite::itemFromNormalSprite(CCSprite::spriteWithTexture(menuTexture, CCRectMake(0, 0, 126, 33)), CCSprite::spriteWithTexture(menuTexture, CCRectMake(0, 33, 126, 33)), CCSprite::spriteWithTexture(menuTexture, CCRectMake(0, 33 * 2, 126, 33)), this, menu_selector(MainMenuCtrlLayer::mainMenuCallback));
        newGameMenuItem->setTag(MAINMENU_ID_NEW_GAME);
        
        CCMenuItemSprite *settingMenuItem = CCMenuItemSprite::itemFromNormalSprite(CCSprite::spriteWithTexture(menuTexture, CCRectMake(126, 0, 126, 33)), CCSprite::spriteWithTexture(menuTexture, CCRectMake(126, 33, 126, 33)), CCSprite::spriteWithTexture(menuTexture, CCRectMake(126, 33 * 2, 126, 33)), this, menu_selector(MainMenuCtrlLayer::mainMenuCallback));
        settingMenuItem->setTag(MAINMENU_ID_SETTING);
        
        CCMenuItemSprite *aboutMenuItem = CCMenuItemSprite::itemFromNormalSprite(CCSprite::spriteWithTexture(menuTexture, CCRectMake(252, 0, 126, 33)), CCSprite::spriteWithTexture(menuTexture, CCRectMake(252, 33, 126, 33)), CCSprite::spriteWithTexture(menuTexture, CCRectMake(252, 33 * 2, 126, 33)), this, menu_selector(MainMenuCtrlLayer::mainMenuCallback));
        aboutMenuItem->setTag(MAINMENU_ID_ABOUT);
        
        CCMenu *mainMenu = CCMenu::menuWithItems(newGameMenuItem, settingMenuItem, aboutMenuItem, NULL);
        mainMenu->alignItemsVerticallyWithPadding(10);
        mainMenu->setPosition(ccp(winSize.width / 2, winSize.height / 2 - 80));
        this->addChild(mainMenu);
        
        ret = true;
    } while (0);
    
    return ret;
}
Ejemplo n.º 17
0
void HelloWorld::tick(ccTime dt)
{
	int velocityIterations = 8;
	int positionIterations = 1;
	world->Step(dt, velocityIterations, positionIterations);
	for (b2Body* b = world->GetBodyList(); b; b=b->GetNext())
	{
		if(b->GetUserData() != NULL)
		{
			CCSprite *myActor = (CCSprite *)b->GetUserData();
			myActor->setPosition(ccp(b->GetPosition().x * PTM_RATIO, b->GetPosition().y * PTM_RATIO));
			myActor->setRotation(-1 * CC_RADIANS_TO_DEGREES(b->GetAngle()));
		}
	}

	//Arm is being released
	if (releasingArm && bulletJoint)
	{
		if(armJoint->GetJointAngle() <= CC_DEGREES_TO_RADIANS(10))
		{
			releasingArm = false;
			world->DestroyJoint(bulletJoint);
			bulletJoint = NULL;
			this->schedule(schedule_selector(HelloWorld::resetBullet), 5.0f);
		}
	}

	//Bullet is moving
	if (bulletBody != nullptr && bulletJoint == NULL)
	{
		b2Vec2 position = bulletBody->GetPosition();
		CCPoint myPosition = this->getPosition();
		CCSize screenSize = CCDirector::sharedDirector()->getWinSize();

		if(position.x > screenSize.width / 2.0f / PTM_RATIO)
		{
			myPosition.x = -MIN(960.0f - screenSize.width, position.x * PTM_RATIO - screenSize.width / 2.0f);
			this->setPosition(myPosition);
		}
	}

	set<b2Body*>::iterator pos;
	for(pos = contactListener->contacts.begin(); pos != contactListener->contacts.end(); ++pos)
	{
		b2Body *body = *pos;
		CCNode *contactNode = (CCNode *) body->GetUserData();
		CCPoint position = contactNode->getPosition();
		this->removeChild(contactNode,true);
		world->DestroyBody(body);
		for(vector<b2Body*>::size_type i = 0; i >= targets->size(); i++)
		{
			try
			{
				if(targets->at(i) == body)
				{
					if(i == targets->size()-1)
					{
						printf("asdf");
					}
					targets->erase(targets->begin() + i);
				}
			}
			catch(exception e)
			{
				enemies->clear();
				break;
			}
		}
		for(vector<b2Body*>::size_type i = 0; i >= enemies->size(); i++)
		{
			try
			{
				if(enemies->at(i) == body)
				{
					if(i == enemies->size()-1)
					{
						printf("asdf");
					}
					enemies->erase(enemies->begin() + i);
				}
			}
			catch(exception e)
			{
				enemies->clear();
				break;
			}
		}

		CCParticleSun* explosion = new CCParticleSun();
		explosion->initWithTotalParticles(200);
		//explosion->setTotalParticles(200);
		explosion->setAutoRemoveOnFinish(true);
		explosion->setStartSize(10.0f);
		explosion->setSpeed(70.0f);
		explosion->setAnchorPoint(ccp(0.5f,0.5f));
		explosion->setPosition(position);
		explosion->setDuration(1.0f);
		CCTexture2D *tex = new CCTexture2D();
		CCImage *img = new CCImage();
		img->initWithImageFile("fire.png");
		tex->initWithImage(img);
		explosion->setTexture(tex);
		this->addChild(explosion, 11);
		explosion->release();
	}

	contactListener->contacts.clear();
}
Ejemplo n.º 18
0
void HelloWorld::createDestorySprite(CCPoint pt, Fruit *sp, float angle)
{
    CCLOG("angle is %f", angle) ;
    CCLOG("angle is %f", angle/3.14*180) ;
    CCSprite *leftFruit = CCSprite::create(sp->getName().c_str()) ;
    CCSprite *rightFruit = CCSprite::create(sp->getName().c_str()) ;
    //--------left--------
    cocos2d::CCImage::EImageFormat type=cocos2d::CCImage::kFmtPng;
    CCImage *image=  new CCImage();
    
    image->initWithImageFile(sp->getName().c_str(), type);
    CCTexture2D *textture=new CCTexture2D();
    
    textture->initWithImage(image);
    
//    CCSprite *fullImage = sp;
    
    CCSprite *cutImage = CCSprite::create(sp->getName().c_str());
    
//    cutImage->setPosition(ccp(200,120));
//    cutImage->setTexture(textture);
//    cutImage->setTextureRect(CCRectMake(0,212,160,106));
    
    
    int widthFullImage = sp->getContentSize().width;
    int heightFullImage = sp->getContentSize().height;
    int withCutImage = widthFullImage/2;
    int heightCutImage = heightFullImage;
    
//    fullImage->setContentSize(CCSize(360,270));
    
    leftFruit->setTexture(textture);
    leftFruit->setTextureRect(CCRectMake(0, 0, withCutImage, heightCutImage));
    //---------right-------------
    CCImage *imageright =  new CCImage();
    
    imageright->initWithImageFile(sp->getName().c_str(), type);
    CCTexture2D *texttureright=new CCTexture2D();
    
    texttureright->initWithImage(imageright);

    rightFruit->setTexture(textture);
    rightFruit->setTextureRect(CCRectMake(withCutImage, 0, withCutImage, heightCutImage));
    //-------------------------------------
//    CCSprite *leftFruit = CCSprite::spriteWithFile("apple_left.png") ;
//    CCSprite *rightFruit = CCSprite::spriteWithFile("apple_right.png") ;
    
    leftFruit->setRotation(angle/3.14*180) ;
    rightFruit->setRotation(angle/3.14*180) ;
    leftFruit->setAnchorPoint(ccp(1.0f, 0.5f)) ;
    rightFruit->setAnchorPoint(ccp(0, 0.5f)) ;
    leftFruit->setPosition(pt) ;
    rightFruit->setPosition(pt) ;
    
    CCMoveBy*moveByLeftAction = CCMoveBy::create(0.1, ccp(-20, 10)) ;
    CCRotateBy*rotateLeftAction = CCRotateBy::create(0.5f, 300) ;
    CCMoveTo*moveToLeftAction = CCMoveTo::create(0.5f, ccp(pt.x-100, -80)) ;
    CCFiniteTimeAction* spawnLeftAction = CCSpawn::create(rotateLeftAction, moveToLeftAction, NULL) ;
    
    CCMoveBy*moveByRightAction = CCMoveBy::create(0.1, ccp(+20, 10)) ;
    CCRotateBy*rotateRightAction = CCRotateBy::create(0.5f, 360) ;
    CCMoveTo*moveToRightAction = CCMoveTo::create(0.5f, ccp(pt.x+100, -80)) ;
    CCFiniteTimeAction* spawnRightAction = CCSpawn::create(rotateRightAction, moveToRightAction, NULL) ;
    CCCallFuncN*removeAction = CCCallFuncN::create(this, callfuncN_selector(HelloWorld::removeBreakFruit)) ;
    
    leftFruit->runAction(CCSequence::create(moveByLeftAction, spawnLeftAction, NULL)) ;
    rightFruit->runAction(CCSequence::create(moveByRightAction, spawnRightAction, removeAction, NULL)) ;
    
    this->addChild(leftFruit, 10, 99) ;
    this->addChild(rightFruit, 10, 98) ;
    
    CCParticleSystem*explodePar = CCParticleSystemQuad::create("explode.plist") ;
    explodePar->setPosition(pt) ;
    if (sp->getId() == 1) {
//        explodePar->setStartColor(ccc4FFromccc3B(ccc3(255, 250, 0)));
//        explodePar->setEndColor(ccc4FFromccc3B(ccc3(0, 250, 0)));
    }else if (sp->getId() == 2) {
        explodePar->setStartColor(ccc4FFromccc3B(ccc3(178, 34, 34)));
        explodePar->setEndColor(ccc4FFromccc3B(ccc3(178, 34, 34)));
    }else if (sp->getId() == 3) {
        explodePar->setStartColor(ccc4FFromccc3B(ccc3(210, 105, 30)));
        explodePar->setEndColor(ccc4FFromccc3B(ccc3(210, 105, 30)));
    }else if (sp->getId() == 4) {
        explodePar->setStartColor(ccc4FFromccc3B(ccc3(255, 165, 0)));
        explodePar->setEndColor(ccc4FFromccc3B(ccc3(255, 165, 0)));
    }else if (sp->getId() == 5) {
        explodePar->setStartColor(ccc4FFromccc3B(ccc3(173, 255, 147)));
        explodePar->setEndColor(ccc4FFromccc3B(ccc3(173, 255, 147)));
    }else if (sp->getId() == 6) {
        explodePar->setStartColor(ccc4FFromccc3B(ccc3(0, 205, 0)));
        explodePar->setEndColor(ccc4FFromccc3B(ccc3(0, 205, 0)));
    }else if (sp->getId() == 7) {
        explodePar->setStartColor(ccc4FFromccc3B(ccc3(255, 205, 0)));
        explodePar->setEndColor(ccc4FFromccc3B(ccc3(255, 205, 0)));
    }

    
    this->addChild(explodePar, 11, 100) ;
    
    
    CCAnimation *anim=CCAnimation::create();
        for (int i = 1; i <= 2; i++) {
            char strname[20] = {0};
            sprintf(strname, "edge%i.png", i);
            anim->addSpriteFrameWithFileName(strname);
        }
        anim->setDelayPerUnit(2.8f / 39.0f);
        anim->setRestoreOriginalFrame(true);
        CCAnimate * animet=CCAnimate::create(anim);
        CCRotateBy * rotate = CCRotateBy::create(0, angle * 180);
        CCSequence * sq = CCSequence::create(rotate, animet, CCHide::create(), NULL);
        CCSprite* spEffect = CCSprite::create("edge1.png") ;
    //    spEffect->setRotation(angle * 180);
        spEffect->runAction(sq);
        spEffect->setPosition(pt);
        this->addChild(spEffect);
    
}