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; }
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; }
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; }
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); }
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; }
// 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; }
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; }
// 주어진 파일로부터 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 }
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); } }
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; }
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); } }
/* * 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); }
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); }
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; }
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; }
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; }
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(); }
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); }