diff --git a/.gitignore b/.gitignore index 31b6916d9..c5b2c8061 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,9 @@ spine-sfml/Debug/* spine-libgdx/bin/* spine-libgdx/libs/* target +*Debug.win32* +*.sdf +*.opensdf +*.user +*.suo +spine-cocos2dx/cocos2dx diff --git a/spine-cocos2dx/.gitignore b/spine-cocos2dx/.gitignore deleted file mode 100644 index 1a06a30c3..000000000 --- a/spine-cocos2dx/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -*Debug.win32* -*.sdf -*.opensdf -*.user -*.suo -cocos2dx -spine-cocos2dx/include/spine/* -spine-cocos2dx/include/json/* -spine-cocos2dx/src/spine/* -spine-cocos2dx/src/json/* \ No newline at end of file diff --git a/spine-cocos2dx/spine-cocos2dx/example/ExampleScene.cpp b/spine-cocos2dx/spine-cocos2dx/example/ExampleScene.cpp index 403d6ae91..115e21416 100644 --- a/spine-cocos2dx/spine-cocos2dx/example/ExampleScene.cpp +++ b/spine-cocos2dx/spine-cocos2dx/example/ExampleScene.cpp @@ -17,9 +17,7 @@ CCScene* ExampleScene::scene() { bool ExampleScene::init() { if (!CCLayer::init()) return false; - ifstream atlasFile("../data/spineboy.atlas"); - Atlas *atlas = new Atlas(atlasFile); - + Atlas *atlas = new Atlas("../data/spineboy.atlas"); SkeletonJson json(atlas); SkeletonData *skeletonData = json.readSkeletonDataFile("../data/spineboy-skeleton.json"); Animation *animation = json.readAnimationFile("../data/spineboy-walk.json", skeletonData); diff --git a/spine-cocos2dx/spine-cocos2dx/include/spine-cocos2dx/Atlas.h b/spine-cocos2dx/spine-cocos2dx/include/spine-cocos2dx/Atlas.h index b3c930f97..a87220253 100644 --- a/spine-cocos2dx/spine-cocos2dx/include/spine-cocos2dx/Atlas.h +++ b/spine-cocos2dx/spine-cocos2dx/include/spine-cocos2dx/Atlas.h @@ -50,9 +50,7 @@ public: class Atlas: public BaseAtlas { public: - Atlas (std::ifstream &file); - Atlas (std::istream &input); - Atlas (const std::string &text); + Atlas (const std::string &path); Atlas (const char *begin, const char *end); AtlasRegion* findRegion (const std::string &name); diff --git a/spine-cocos2dx/spine-cocos2dx/include/spine-cocos2dx/SkeletonJson.h b/spine-cocos2dx/spine-cocos2dx/include/spine-cocos2dx/SkeletonJson.h index 23c5cdffe..8911e092f 100644 --- a/spine-cocos2dx/spine-cocos2dx/include/spine-cocos2dx/SkeletonJson.h +++ b/spine-cocos2dx/spine-cocos2dx/include/spine-cocos2dx/SkeletonJson.h @@ -37,6 +37,9 @@ public: SkeletonJson (Atlas *atlas); /** The SkeletonJson owns the attachmentLoader. */ SkeletonJson (BaseAttachmentLoader *attachmentLoader); + + SkeletonData* readSkeletonDataFile (const std::string &path) const; + Animation* readAnimationFile (const std::string &path, const SkeletonData *skeletonData) const; }; } /* namespace spine */ diff --git a/spine-cocos2dx/spine-cocos2dx/src/spine-cocos2dx/Atlas.cpp b/spine-cocos2dx/spine-cocos2dx/src/spine-cocos2dx/Atlas.cpp index 1594f110e..2eaf75fbd 100644 --- a/spine-cocos2dx/spine-cocos2dx/src/spine-cocos2dx/Atlas.cpp +++ b/spine-cocos2dx/spine-cocos2dx/src/spine-cocos2dx/Atlas.cpp @@ -24,6 +24,7 @@ ******************************************************************************/ #include +#include USING_NS_CC; @@ -36,16 +37,12 @@ AtlasPage::~AtlasPage () { // -Atlas::Atlas (std::ifstream &file) { - load(file); -} - -Atlas::Atlas (std::istream &input) { - load(input); -} - -Atlas::Atlas (const std::string &text) { - load(text); +Atlas::Atlas (const std::string &path) { + unsigned long size; + char* data = reinterpret_cast(CCFileUtils::sharedFileUtils()->getFileData( + CCFileUtils::sharedFileUtils()->fullPathForFilename(path.c_str()).c_str(), "r", &size)); + if (!data) throw std::runtime_error("Error reading atlas file: " + path); + load(data, data + size); } Atlas::Atlas (const char *begin, const char *end) { diff --git a/spine-cocos2dx/spine-cocos2dx/src/spine-cocos2dx/SkeletonJson.cpp b/spine-cocos2dx/spine-cocos2dx/src/spine-cocos2dx/SkeletonJson.cpp index 6948fc8e2..468d1dc18 100644 --- a/spine-cocos2dx/spine-cocos2dx/src/spine-cocos2dx/SkeletonJson.cpp +++ b/spine-cocos2dx/spine-cocos2dx/src/spine-cocos2dx/SkeletonJson.cpp @@ -24,7 +24,12 @@ ******************************************************************************/ #include +#include #include +#include "platform/CCFileUtils.h" + +using cocos2d::CCFileUtils; +using std::runtime_error; namespace spine { @@ -36,4 +41,20 @@ SkeletonJson::SkeletonJson (Atlas *atlas) : BaseSkeletonJson(new AtlasAttachmentLoader(atlas)) { } +SkeletonData* SkeletonJson::readSkeletonDataFile (const std::string &path) const { + unsigned long size; + char* data = reinterpret_cast(CCFileUtils::sharedFileUtils()->getFileData( + CCFileUtils::sharedFileUtils()->fullPathForFilename(path.c_str()).c_str(), "r", &size)); + if (!data) throw runtime_error("Error reading skeleton file: " + path); + return readSkeletonData(data, data + size); +} + +Animation* SkeletonJson::readAnimationFile (const std::string &path, const SkeletonData *skeletonData) const { + unsigned long size; + char* data = reinterpret_cast(CCFileUtils::sharedFileUtils()->getFileData( + CCFileUtils::sharedFileUtils()->fullPathForFilename(path.c_str()).c_str(), "r", &size)); + if (!data) throw runtime_error("Error reading animation file: " + path); + return readAnimation(data, data + size, skeletonData); +} + } /* namespace spine */