Created
February 21, 2018 07:50
-
-
Save j2doll/613d5d2dd91c70d9f65f1ae213c91122 to your computer and use it in GitHub Desktop.
Using Spritesheets with Cocos2d-X
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // 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