Skip to content

Instantly share code, notes, and snippets.

@j2doll
Created February 21, 2018 07:50
Show Gist options
  • Select an option

  • Save j2doll/613d5d2dd91c70d9f65f1ae213c91122 to your computer and use it in GitHub Desktop.

Select an option

Save j2doll/613d5d2dd91c70d9f65f1ae213c91122 to your computer and use it in GitHub Desktop.
Using Spritesheets with Cocos2d-X
// Using Spritesheets with Cocos2d-X
// http://paralaxer.com/animation-spritesheets/
//------------------------------------------------------------------
// So how does one use a spritesheet with Cocos2d-X?
// The first thing you've got to do is load the texture file
// and cache the sprite frames:
// set the appropriate resource directory for this device. HD/HDR/SD, etc...
CCFileUtils::sharedFileUtils()->setResourceDirectory( "HD" );
// load and cache the texture and sprite frames
auto cacher = CCSpriteFrameCache::sharedSpriteFrameCache();
cacher->addSpriteFramesWithFile( "Ninja.plist" );
//------------------------------------------------------------------
// Here's how to create a sprite using one of the sprite frames:
CCSprite* someSprite = new CCSprite;
someSprite->initWithSpriteFrameName( "ninja-stopped0000.png" );
//------------------------------------------------------------------
// To individually get one of the sprite frames:
// get the sprite frame
CCSpriteFrame* frame = cacher->spriteFrameByName( "ninja-sidekick-e0007.png" );
// set someSprite's display frame
someSprite->setDisplayFrame( frame );
//------------------------------------------------------------------
//To play an animation:
// load all the animation frames into an array
const int kNumberOfFrames = 13;
CCArray* frames = new CCArray;
frames->initWithCapacity(kNumberOfFrames);
for( int i = 0; i < kNumberOfFrames; i++ )
{
CCString* filename =
CCString::createWithFormat("ninja-sidekick-e%04d.png", i);
frames->addObject(cacher->spriteFrameByName(filename->getCString()));
}
// play the animation
CCAnimation* anim = new CCAnimation;
anim->initWithSpriteFrames(frames);
someSprite->runAction(CCAnimate::create(anim));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment