Last active
December 11, 2015 01:29
-
-
Save tks2shimizu/4523792 to your computer and use it in GitHub Desktop.
100匹のネコ (3)非同期読込
This file contains 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
#include "HelloWorldScene.h" | |
#include "SimpleAudioEngine.h" | |
using namespace cocos2d; | |
using namespace CocosDenshion; | |
CCScene* HelloWorld::scene() | |
{ | |
CCScene *scene = CCScene::create(); | |
HelloWorld *layer = HelloWorld::create(); | |
scene->addChild(layer); | |
return scene; | |
} | |
bool HelloWorld::init() | |
{ | |
if ( !CCLayer::init() ) | |
{ | |
return false; | |
} | |
srand((unsigned)time(NULL)); | |
//usingSprite(); | |
//usingSpriteFrameCache(); | |
usingTextureCache(); | |
return true; | |
} | |
void HelloWorld::usingSprite() | |
{ | |
CCSize winSize = CCDirector::sharedDirector()->getWinSize(); | |
start = clock(); | |
for (int i = 0; i < 100; i++) { | |
int random = rand(); | |
// ふつうの表示 | |
CCString* fileName = CCString::createWithFormat("cat%02d.png", i); | |
CCSprite* cat = CCSprite::create(fileName->getCString()); | |
cat->setPosition(ccp(random % (int)winSize.width, | |
random % (int)winSize.height)); | |
this->addChild(cat); | |
} | |
CCLog("%f", (double)(clock() - start) / CLOCKS_PER_SEC); | |
} | |
void HelloWorld::usingSpriteFrameCache() | |
{ | |
CCSize winSize = CCDirector::sharedDirector()->getWinSize(); | |
start = clock(); | |
// キャッシュへ読込み | |
CCSpriteFrameCache* cache = CCSpriteFrameCache::sharedSpriteFrameCache(); | |
cache->addSpriteFramesWithFile("cats1.plist"); | |
cache->addSpriteFramesWithFile("cats2.plist"); | |
for (int i = 0; i < 100; i++) { | |
int random = rand(); | |
// キャッシュから表示 | |
CCString* fileName = CCString::createWithFormat("cat%02d.png", i); | |
CCSprite* cat = CCSprite::createWithSpriteFrameName(fileName->getCString()); | |
cat->setPosition(ccp(random % (int)winSize.width, | |
random % (int)winSize.height)); | |
this->addChild(cat); | |
} | |
CCLog("%f", (double)(clock() - start) / CLOCKS_PER_SEC); | |
} | |
void HelloWorld::usingTextureCache() | |
{ | |
start = clock(); | |
for (int i = 0; i < 100; i++) | |
{ | |
CCString* fileName = CCString::createWithFormat("cat%02d.png", i); | |
CCTextureCache* cache = CCTextureCache::sharedTextureCache(); | |
//キャッシュへ非同期で読込み | |
cache->addImageAsync(fileName->getCString(), this, callfuncO_selector(HelloWorld::loadedImage)); | |
} | |
CCLog("%f", (double)(clock() - start) / CLOCKS_PER_SEC); | |
} | |
void HelloWorld::loadedImage(cocos2d::CCObject* object) | |
{ | |
CCSize winSize = CCDirector::sharedDirector()->getWinSize(); | |
//キャッシュから表示 | |
CCTexture2D* texture = (CCTexture2D*)object; | |
int random = rand(); | |
CCSprite* cat = CCSprite::createWithTexture(texture); | |
cat->setPosition(ccp(random % (int)winSize.width, random % (int)winSize.height)); | |
this->addChild(cat); | |
static int i = 0; | |
if (++i == 100) | |
{ | |
CCLog("%f", (double)(clock() - start) / CLOCKS_PER_SEC); | |
} | |
} |
This file contains 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
//#ifndef __HELLOWORLD_SCENE_H__ | |
//#define __HELLOWORLD_SCENE_H__ | |
#include "cocos2d.h" | |
class HelloWorld : public cocos2d::CCLayer | |
{ | |
private: | |
clock_t start; | |
void usingSprite(); | |
void usingSpriteFrameCache(); | |
void usingTextureCache(); | |
void loadedImage(cocos2d::CCObject* object); | |
public: | |
virtual bool init(); | |
static cocos2d::CCScene* scene(); | |
CREATE_FUNC(HelloWorld); | |
}; | |
//#endif // __HELLOWORLD_SCENE_H__ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment