本文整理汇总了C++中SpriteFrameCache::spriteFrameByName方法的典型用法代码示例。如果您正苦于以下问题:C++ SpriteFrameCache::spriteFrameByName方法的具体用法?C++ SpriteFrameCache::spriteFrameByName怎么用?C++ SpriteFrameCache::spriteFrameByName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SpriteFrameCache
的用法示例。
在下文中一共展示了SpriteFrameCache::spriteFrameByName方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CCLOG
void AnimationCache::parseVersion1(Dictionary* animations)
{
SpriteFrameCache *frameCache = SpriteFrameCache::sharedSpriteFrameCache();
DictElement* pElement = NULL;
CCDICT_FOREACH(animations, pElement)
{
Dictionary* animationDict = (Dictionary*)pElement->getObject();
Array* frameNames = (Array*)animationDict->objectForKey("frames");
float delay = animationDict->valueForKey("delay")->floatValue();
Animation* animation = NULL;
if ( frameNames == NULL )
{
CCLOG("cocos2d: AnimationCache: Animation '%s' found in dictionary without any frames - cannot add to animation cache.", pElement->getStrKey());
continue;
}
Array* frames = Array::createWithCapacity(frameNames->count());
frames->retain();
Object* pObj = NULL;
CCARRAY_FOREACH(frameNames, pObj)
{
const char* frameName = ((String*)pObj)->getCString();
SpriteFrame* spriteFrame = frameCache->spriteFrameByName(frameName);
if ( ! spriteFrame ) {
CCLOG("cocos2d: AnimationCache: Animation '%s' refers to frame '%s' which is not currently in the SpriteFrameCache. This frame will not be added to the animation.", pElement->getStrKey(), frameName);
continue;
}
AnimationFrame* animFrame = new AnimationFrame();
animFrame->initWithSpriteFrame(spriteFrame, 1, NULL);
frames->addObject(animFrame);
animFrame->release();
}
if ( frames->count() == 0 ) {
CCLOG("cocos2d: AnimationCache: None of the frames for animation '%s' were found in the SpriteFrameCache. Animation is not being added to the Animation Cache.", pElement->getStrKey());
continue;
} else if ( frames->count() != frameNames->count() ) {
CCLOG("cocos2d: AnimationCache: An animation in your dictionary refers to a frame which is not in the SpriteFrameCache. Some or all of the frames for the animation '%s' may be missing.", pElement->getStrKey());
}
animation = Animation::create(frames, delay, 1);
AnimationCache::sharedAnimationCache()->addAnimation(animation, pElement->getStrKey());
frames->release();
}
示例2: walkTo
void Enemy::walkTo(Point position, float time) {
_steppingTileCoord = this->getCave()->getCharacterTileCoordForPosition(this->getNode()->getPosition());
Action *steppingOutAction = Sequence::create(
DelayTime::create(time / 2),
CallFunc::create(this, callfunc_selector(Enemy::triggerWeightSwitch)),
NULL);
SpriteFrameCache *spriteCache = SpriteFrameCache::sharedSpriteFrameCache();
const char *frameName = this->getDirectionName();
Animation *anim = Animation::create();
anim->addSpriteFrame(spriteCache->spriteFrameByName(String::createWithFormat("enemy%s2.png", frameName)->getCString()));
anim->addSpriteFrame(spriteCache->spriteFrameByName(String::createWithFormat("enemy%s1.png", frameName)->getCString()));
anim->addSpriteFrame(spriteCache->spriteFrameByName(String::createWithFormat("enemy%s3.png", frameName)->getCString()));
anim->addSpriteFrame(spriteCache->spriteFrameByName(String::createWithFormat("enemy%s1.png", frameName)->getCString()));
anim->setDelayPerUnit(time / anim->getFrames()->count());
anim->setRestoreOriginalFrame(false);
Action *action = Sequence::create(MoveTo::create(time, position),
CallFunc::create(this, callfunc_selector(Enemy::finishWalk)),
NULL);
this->getNode()->stopAllActions();
this->getNode()->runAction(Animate::create(anim));
this->getNode()->runAction(action);
this->getNode()->runAction(steppingOutAction);
_movementIndex = _movementIndex == 2 ? 3 : 2;
}
示例3: init
bool CGameLevel::init()
{
LayerBack::init();
g_iGameLevel = 1;
size = winSize;
// 选关列表
SpriteFrameCache *pCache = SpriteFrameCache::sharedSpriteFrameCache();
pCache->addSpriteFramesWithFile("Image/GameLevel.plist");
// 选关背景
SpriteFrame* pBG = pCache->spriteFrameByName("GameLevelBG.png");
Sprite* pSprite = CCSprite::createWithSpriteFrame(pBG);
pSprite->setPosition(ccp(size.width/2, size.height/2));
pSprite->setScale(2.0f);
pSprite->setRotation(90.0f);
this->addChild(pSprite, 0);
_pSprite = pSprite;
/**背景特效 */
ParticleSystemQuad *emitter = ParticleSystemQuad::create("Image/Phoenix.plist");
emitter->setPosition(ccp(size.width/2, size.height/2));
this->addChild(emitter, 1);
/** 关卡一按钮 */
MenuItemImage *pLevelOne = MenuItemImage::create();
pLevelOne->setTarget(this, menu_selector(CGameLevel::setLevelMode));
pLevelOne->setNormalSpriteFrame(pCache->spriteFrameByName("StartLevel1Normal.png"));
pLevelOne->setSelectedSpriteFrame(pCache->spriteFrameByName("StartLevel1Selected.png"));
pLevelOne->setPosition(ccp(size.width*0.14f, size.height/2));
pLevelOne->_ID = LEVEL_ONE;
/** 关卡二按钮 */
MenuItemImage *pLevelTwo = MenuItemImage::create();
pLevelTwo->setTarget(this, menu_selector(CGameLevel::setLevelMode));
pLevelTwo->setNormalSpriteFrame(pCache->spriteFrameByName("StartLevel2Normal.png"));
pLevelTwo->setSelectedSpriteFrame(pCache->spriteFrameByName("StartLevel2Selected.png"));
pLevelTwo->setPosition(ccp(size.width/2, size.height*0.8f));
pLevelTwo->_ID = LEVEL_TWO;
/** 关卡三按钮 */
MenuItemImage *pLevelThree = MenuItemImage::create();
pLevelThree->setTarget(this, menu_selector(CGameLevel::setLevelMode));
pLevelThree->setNormalSpriteFrame(pCache->spriteFrameByName("StartLevel3Normal.png"));
pLevelThree->setSelectedSpriteFrame(pCache->spriteFrameByName("StartLevel3Selected.png"));
pLevelThree->setPosition(ccp(size.width*0.86f, size.height/2));
pLevelThree->_ID = LEVEL_THREE;
/** 游戏开始按钮 */
MenuItemImage *pStart = MenuItemImage::create();
pStart->setTarget(this, menu_selector(CGameLevel::setLevelStart));
pStart->setNormalSpriteFrame(pCache->spriteFrameByName("GameStartNormal.png"));
pStart->setSelectedSpriteFrame(pCache->spriteFrameByName("GameStartSelected.png"));
pStart->setPosition(ccp(size.width/2, size.height*0.2f));
/** 菜单 */
_menu->addChild(pLevelOne);
_menu->addChild(pLevelTwo);
_menu->addChild(pLevelThree);
_menu->addChild(pStart);
_menu->setPosition(ccp(0, 0));
_menu->setZOrder(3);
/** 选中特效 */
m_pSun = ParticleSun::create();
pSprite->addChild(m_pSun, 1);
m_pSun->setTexture(TextureCache::sharedTextureCache()->addImage("Image/Fire.png") );
m_pSun->setPosition(_pSprite->convertToNodeSpace(ccp(size.width*0.14f, size.height / 2)));
m_pSun->setStartSize(30);
_menuItem->setTarget(this, menu_selector(CGameLevel::back));
//_menuItem死活不出现
return true;
}
示例4: setGameCache
void SetGameCacheController::setGameCache(){
AnimationCache* animationCache = AnimationCache::getInstance();
SpriteFrameCache * cache = SpriteFrameCache::getInstance();
cache->addSpriteFramesWithFile(Constant::getEnemyGoblinPath());
cache->addSpriteFramesWithFile(Constant::getEnemySoldierPath());
cache->addSpriteFramesWithFile(Constant::getEnemyArrowEnemyPath());
cache->addSpriteFramesWithFile(Constant::getEnemySheepPath());
cache->addSpriteFramesWithFile(Constant::getEnemyBossAttackPath());
cache->addSpriteFramesWithFile(Constant::getEnemyBossPath());
//Goblin Move
Vector <SpriteFrame*> temp;
char name[20];
memset(name, 0, sizeof(name));
for (int i = 0; i < 5; i++){
sprintf(name, "Goblin_%d.png", i + 1);
SpriteFrame* sf = cache->spriteFrameByName(name);
temp.pushBack(sf);
}
animationCache->addAnimation(Animation::createWithSpriteFrames(temp, 0.1f), Constant::getEnemyGoblinMove());
//Sheep Move
temp.clear();
memset(name, 0, sizeof(name));
for (int i = 4; i < 8; i++){
sprintf(name, "Sheep_%d.png", i);
SpriteFrame* sf = cache->spriteFrameByName(name);
temp.pushBack(sf);
}
animationCache->addAnimation(Animation::createWithSpriteFrames(temp, 0.1f), Constant::getEnemySheepMove());
//Soldier Move
temp.clear();
memset(name, 0, sizeof(name));
for (int i = 0; i < 8; i++){
sprintf(name, "Soldier_%d.png", i + 1);
SpriteFrame* sf = cache->spriteFrameByName(name);
temp.pushBack(sf);
}
animationCache->addAnimation(Animation::createWithSpriteFrames(temp, 0.1f), Constant::getEnemySoldierMove());
//ArrowEnemy Attack
temp.clear();
for (int i = 9; i < 16; i++){
sprintf(name, "ArrowEnemy_%d.png", i + 1);
SpriteFrame* sf = cache->spriteFrameByName(name);
temp.pushBack(sf);
}
animationCache->addAnimation(Animation::createWithSpriteFrames(temp, 0.2f), Constant::getEnemyArrowEnemyAttack());
//Goblin Death
temp.clear();
for (int i = 10; i < 14; i++){
sprintf(name, "Goblin_%d.png", i + 1);
SpriteFrame* sf = cache->getSpriteFrameByName(name);
temp.pushBack(sf);
}
animationCache->addAnimation(Animation::createWithSpriteFrames(temp, 0.5f), Constant::getEnemyGoblinDeath());
//Sheep Death
temp.clear();
for (int i = 13; i < 22; i++){
sprintf(name, "Sheep_%d.png", i);
SpriteFrame* sf = cache->getSpriteFrameByName(name);
temp.pushBack(sf);
}
animationCache->addAnimation(Animation::createWithSpriteFrames(temp, 0.5f), Constant::getEnemySheepDeath());
//Soldier Death
temp.clear();
for (int i = 17; i < 23; i++){
sprintf(name, "Soldier_%d.png", i + 1);
SpriteFrame* sf = cache->getSpriteFrameByName(name);
temp.pushBack(sf);
}
animationCache->addAnimation(Animation::createWithSpriteFrames(temp, 0.5f), Constant::getEnemySoldierDeath());
//ArrowEnemy Death
temp.clear();
for (int i = 17; i < 21; i++){
sprintf(name, "ArrowEnemy_%d.png", i + 1);
SpriteFrame* sf = cache->getSpriteFrameByName(name);
temp.pushBack(sf);
}
animationCache->addAnimation(Animation::createWithSpriteFrames(temp, 0.5f), Constant::getEnemyArrowEnemyDeath());
//Boss Normal
temp.clear();
for (int i = 17; i < 23; i++){
sprintf(name, "Boss_%d.png", i);
SpriteFrame* sf = cache->getSpriteFrameByName(name);
temp.pushBack(sf);
}
animationCache->addAnimation(Animation::createWithSpriteFrames(temp, 0.2f), Constant::getEnemyBossNormal());
//Boss Attack
//.........这里部分代码省略.........