ios - Cocos2dx changing sprite size and texture uv without using plist file -
i using cocos2dx. testing device ipad2 want sprite size independent of texture size because cant afford 1 one mapping. here example suppose have texture dimensions 1024,1024 want use portion of 0,0 300,300 want sprite draw 100,100 200,200 how can acheive this
i have tried setting quad manualy giving weird behaviour quad vertices are
quad.bl.vertices = 0,0 quad.br.vertices = 1024,0 quad.tr.vertices = 1024,1024 quad.tl.vertices = 0,1024
nothing displayed on screen
but when change them
quad.bl.vertices = 0,0 quad.br.vertices = 2048,0 quad.tr.vertices = 2048,2048 quad.tl.vertices = 0,2048
then portion of sprite displayed on screen. after changing vertices bit seems if coocs 2d assuming bottom left corner of ipad @ 1024, 1024 regards
i think need
ccrect requiredportion = ccrectmake(0, 0, 300, 300); ccrect drawarea = ccrectmake(100, 100, 100, 100); ccimage *image = new ccimage(); image->initwithimagefile("texture.png"); //create full size texture example 1024,1024 cctexture2d *texture = new cctexture2d(); texture->initwithimage(image); //create sprite require portion of texture (here size of created sprite 300,300); ccsprite *spritenew = ccsprite::createwithtexture(texture, requiredportion); //setting anchor point make sure drawing required position on screen spritenew->setanchorpoint(ccp(0, 0)); //set scale sprite make fit in required area i.e (requiredsize/currentsize) spritenew->setscale(drawarea.size.width/requiredportion.size.width); spritenew->setposition(drawarea.origin); somenode->addchild(spritenew);
make sure delete image
, texture
later, not autorelease.
Comments
Post a Comment