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; }
NS_CC_BEGIN static CCTexture2D* getDefaultTexture ( KDvoid ) { CCTexture2D* pTexture = KD_NULL; do { const KDchar* szKey = "__firePngData"; pTexture = CCTextureCache::sharedTextureCache ( )->textureForKey ( szKey ); CC_BREAK_IF ( pTexture != KD_NULL ); CCImage* pImage = new CCImage ( ); if ( pImage && pImage->initWithData ( (KDvoid*) __firePngData, sizeof ( __firePngData ) ) ) { pImage->autorelease ( ); pTexture = CCTextureCache::sharedTextureCache ( )->addCCImage ( pImage, szKey ); } else { CC_SAFE_DELETE ( pImage ); } } while ( 0 ); return pTexture; }
JNIEXPORT void JNICALL Java_game_mobile_infinity_FacebookManager_jniCallbackPicture(JNIEnv* env, jobject thiz, jstring jid , jbyteArray jimage) { const char *id = env->GetStringUTFChars( jid, 0); CCString* cfbID = CCString::createWithFormat("%s",id); int len = env->GetArrayLength(jimage); char* byteData = (char*)malloc(len); env->GetByteArrayRegion(jimage,0,len,(jbyte*)byteData); CCImage* imf = new CCImage(); imf->initWithImageData(byteData,len); imf->autorelease(); CCTexture2D* pTexture = new CCTexture2D(); pTexture->initWithImage(imf); pTexture->autorelease(); CCSprite *sprit = CCSprite::createWithTexture(pTexture); Facebook_Manager::sharedInstance()->Callback_Picture(cfbID, sprit); env->ReleaseStringUTFChars( jid, id); }
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; }
static CCSprite* createMaskSprite(CCLayerColor* base, const std::vector<CCRect>& cutoutList) { CCSize winSize = CCDirector::sharedDirector()->getWinSize(); // CCRenderTexture* rt = CCRenderTexture::create(winSize.width, winSize.height); // use a low-precision format CCRenderTexture* rt = CCRenderTexture::create(winSize.width, winSize.height, kTexture2DPixelFormat_RGBA8888); rt->setAnchorPoint(ccp(0, 0)); rt->setPosition(ccp(0, 0)); ccBlendFunc cutoutBlend = {GL_DST_ALPHA, GL_ZERO}; // render to texture rt->begin(); base->visit(); CCSprite* s = CCSprite::create("ui/1x1_b.png"); s->setAnchorPoint(ccp(0, 0)); s->setOpacity(0); for(const CCRect& cutout : cutoutList) { s->setPosition(cutout.origin); s->setScaleX(cutout.size.width * contentScale()); s->setScaleY(cutout.size.height * contentScale()); s->setBlendFunc(cutoutBlend); s->visit(); } rt->end(); // render to texture done std::string randName = std::string("mask_image_") + boost::lexical_cast<std::string>(rand()); CCImage* img = rt->newCCImage(false); img->autorelease(); CCTexture2D* tex = CCTextureCache::sharedTextureCache()->addUIImage(img, randName.c_str()); CCSprite *mask = CCSprite::createWithTexture(tex); mask->setFlipY(true); mask->setAnchorPoint(ccp(0, 0)); mask->setPosition(ccp(0, 0)); return mask; }
void CAMediaManager::initAndroidImage() { CCImage *image =new CCImage(); image->autorelease(); if (image->initWithImageData((void*)m_pBuffer,n_fileSize,CCImage::kFmtJpg)) { this->getMediaDelegate()->getSelectedImage(image); CAScheduler::unschedule(schedule_selector(CAMediaManager::initAndroidImage), this); } }
/* * 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); }
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; }
JNIEXPORT void JNICALL Java_org_cocos2dx_lib_CCImage_1richlabel_nativeGetSpriteFrameInfo (JNIEnv * env, jclass clazz, jstring jPlist, jstring jAtlas, jstring jImageName, jobject jFrame) { // get c string const char* plist = (const char*)env->GetStringUTFChars(jPlist, NULL); const char* atlas = (const char*)env->GetStringUTFChars(jAtlas, NULL); const char* imageName = (const char*)env->GetStringUTFChars(jImageName, NULL); // get sprite frame CLBitmapDC& bitmapDC = CLBitmapDC::sharedCLBitmapDC(); CCSpriteFrameCache* fc = CCSpriteFrameCache::sharedSpriteFrameCache(); if(!fc->spriteFrameByName(imageName)) { if(bitmapDC.m_decryptFunc) { // load encryptd data unsigned long len; char* data = (char*)CCFileUtils::sharedFileUtils()->getFileData(atlas, "rb", &len); // create texture int decLen; const char* dec = (*bitmapDC.m_decryptFunc)(data, (int)len, &decLen); CCImage* image = new CCImage(); image->initWithImageData((void*)dec, decLen); image->autorelease(); CCTexture2D* tex = CCTextureCache::sharedTextureCache()->addUIImage(image, atlas); // add fc->addSpriteFramesWithFile(plist, tex); // free if(data != dec) free((void*)dec); free(data); } else { fc->addSpriteFramesWithFile(plist, atlas); } } CCSpriteFrame* frame = fc->spriteFrameByName(imageName); // get java frame info jclass frameClass = env->FindClass("org/cocos2dx/lib/CCImage_richlabel$AtlasFrame"); jfieldID fid_x = env->GetFieldID(frameClass, "x", "I"); jfieldID fid_y = env->GetFieldID(frameClass, "y", "I"); jfieldID fid_w = env->GetFieldID(frameClass, "w", "I"); jfieldID fid_h = env->GetFieldID(frameClass, "h", "I"); jfieldID fid_offsetX = env->GetFieldID(frameClass, "offsetX", "I"); jfieldID fid_offsetY = env->GetFieldID(frameClass, "offsetY", "I"); jfieldID fid_sourceWidth = env->GetFieldID(frameClass, "sourceWidth", "I"); jfieldID fid_sourceHeight = env->GetFieldID(frameClass, "sourceHeight", "I"); jfieldID fid_rotated = env->GetFieldID(frameClass, "rotated", "Z"); // copy frame info to java object const CCSize& sourceSize = frame->getOriginalSizeInPixels(); bool rotated = frame->isRotated(); const CCRect& frameRect = frame->getRectInPixels(); const CCPoint& offset = frame->getOffsetInPixels(); env->SetIntField(jFrame, fid_x, (int)frameRect.origin.x); env->SetIntField(jFrame, fid_y, (int)frameRect.origin.y); env->SetIntField(jFrame, fid_w, (int)frameRect.size.width); env->SetIntField(jFrame, fid_h, (int)frameRect.size.height); env->SetIntField(jFrame, fid_offsetX, (int)offset.x); env->SetIntField(jFrame, fid_offsetY, (int)offset.y); env->SetIntField(jFrame, fid_sourceWidth, (int)sourceSize.width); env->SetIntField(jFrame, fid_sourceHeight, (int)sourceSize.height); env->SetBooleanField(jFrame, fid_rotated, rotated); // release env->DeleteLocalRef(frameClass); env->ReleaseStringUTFChars(jPlist, plist); env->ReleaseStringUTFChars(jAtlas, atlas); env->ReleaseStringUTFChars(jImageName, imageName); }