-
通过SpriteFrameCache来创建一个Sprite
自己创建一个plist并访问----HelloWorld的Demo模版中的HelloWorld::init()添加以下代码,具体解释见注释。。。
bool HelloWorld::init()
{
printf(" %s,%d \n",__PRETTY_FUNCTION__,__LINE__);
if ( !Scene::init() ) { return false; }
{
auto visibleSize = Director::getInstance()->getVisibleSize();
printf(" %s,%d \n",__PRETTY_FUNCTION__,__LINE__);
//将plist缓存到SpriteFrameCache中
auto spriteCache = SpriteFrameCache::getInstance();
spriteCache->addSpriteFramesWithFile("gallop_avp.plist");
//从SpriteFrameCache访问一个sprite
auto spriteFrame =
SpriteFrameCache::getInstance()->getSpriteFrameByName("add_n.png");//传入的参数必须是在.plist文件中存在的key的值---比如<key>add_n.png</key>
//创建一个sprite
auto sprite = Sprite::createWithSpriteFrame(spriteFrame);
sprite->setPosition(visibleSize / 2);
//加载到当前sence
this->addChild(sprite);
printf(" %s,%d \n",__PRETTY_FUNCTION__,__LINE__);
}
return true;
}
-
通过Texture2D创建一个Sprite
同理在HelloWorld::init()中加入以下代码。。具体解释见代码
bool HelloWorld::init()
{
printf(" %s,%d \n",__PRETTY_FUNCTION__,__LINE__);
if ( !Scene::init() ) { return false; }
//读取确认的窗口尺寸大小
auto visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
//载入整张图片(包含许多需要的小块图片)
Image *image = new Image;
image->initWithImageFile("poker.jpeg");
//创建一个Texture
Texture2D* texture = new Texture2D();
texture->initWithImage(image);
//通过Texturecache创建一个Sprite
SpriteFrame * spframe = SpriteFrame::createWithTexture(texture, Rect(0, 0, 150,200)); //截取的图片的部分
Sprite *sp = Sprite::createWithSpriteFrame(spframe);
//设置Sprite的位置在窗口中央
sp->setPosition(visibleSize / 2);
this->addChild(sp);
return true;
}