mirror of https://github.com/axmolengine/axmol.git
fixed #1489:sample works ok
This commit is contained in:
parent
7941d70a04
commit
d35af7b6fe
|
@ -52,7 +52,6 @@ AssetsManager::AssetsManager()
|
|||
, _versionFileUrl("")
|
||||
, _version("")
|
||||
, _curl(NULL)
|
||||
, _delegate(NULL)
|
||||
{
|
||||
_storagePath = CCFileUtils::sharedFileUtils()->getWritablePath();
|
||||
checkStoragePath();
|
||||
|
@ -62,7 +61,6 @@ AssetsManager::AssetsManager(const char* packageUrl, const char* versionFileUrl)
|
|||
: _packageUrl(packageUrl)
|
||||
, _version("")
|
||||
, _versionFileUrl(versionFileUrl)
|
||||
, _delegate(NULL)
|
||||
, _curl(NULL)
|
||||
{
|
||||
_storagePath = CCFileUtils::sharedFileUtils()->getWritablePath();
|
||||
|
@ -74,7 +72,6 @@ AssetsManager::AssetsManager(const char* packageUrl, const char* versionFileUrl,
|
|||
, _version("")
|
||||
, _versionFileUrl(versionFileUrl)
|
||||
, _storagePath(storagePath)
|
||||
, _delegate(NULL)
|
||||
, _curl(NULL)
|
||||
{
|
||||
checkStoragePath();
|
||||
|
@ -119,7 +116,7 @@ bool AssetsManager::checkUpdate()
|
|||
|
||||
if (res != 0)
|
||||
{
|
||||
CCLOG("can not get version file content");
|
||||
CCLOG("can not get version file content, error code is %d", res);
|
||||
curl_easy_cleanup(_curl);
|
||||
return false;
|
||||
}
|
||||
|
@ -275,7 +272,7 @@ bool AssetsManager::uncompress()
|
|||
error = unzReadCurrentFile(zipfile, readBuffer, BUFFER_SIZE);
|
||||
if (error < 0)
|
||||
{
|
||||
CCLOG("error when read zip file %s, error code is %d", fileName, error);
|
||||
CCLOG("can not read zip file %s, error code is %d", fileName, error);
|
||||
unzCloseCurrentFile(zipfile);
|
||||
unzClose(zipfile);
|
||||
return false;
|
||||
|
@ -304,6 +301,8 @@ bool AssetsManager::uncompress()
|
|||
}
|
||||
}
|
||||
|
||||
CCLOG("end uncompressing");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -349,7 +348,8 @@ static size_t downLoadPackage(void *ptr, size_t size, size_t nmemb, void *userda
|
|||
|
||||
static int progressFunc(void *ptr, double totalToDownload, double nowDownloaded, double totalToUpLoad, double nowUpLoaded)
|
||||
{
|
||||
cocos2d::CCLog("progress %d", int(nowDownloaded/totalToDownload));
|
||||
CCLOG("downloading... %d%%", (int)(nowDownloaded/totalToDownload*100));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -380,6 +380,8 @@ bool AssetsManager::downLoad()
|
|||
return false;
|
||||
}
|
||||
|
||||
CCLOG("succeed downloading package %s", _packageUrl.c_str());
|
||||
|
||||
fclose(fp);
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#include <string>
|
||||
#include <curl/curl.h>
|
||||
|
||||
class AssetsManagerDelegate;
|
||||
#include "cocos2d.h"
|
||||
|
||||
/*
|
||||
* This class is used to auto update resources, such as pictures or scripts.
|
||||
|
@ -126,25 +126,7 @@ private:
|
|||
std::string _packageUrl;
|
||||
std::string _versionFileUrl;
|
||||
|
||||
AssetsManagerDelegate* _delegate;
|
||||
|
||||
CURL *_curl;
|
||||
};
|
||||
|
||||
/* @brief This class is used as base class of the delegate of AssetsManager.
|
||||
*/
|
||||
class AssetsManagerDelegate
|
||||
{
|
||||
public:
|
||||
/* @brief When an error happens in updating resources, AssetsManager will invoke its delegate's onError().
|
||||
*
|
||||
* @param errorCode The pointer to record error code.
|
||||
* The value will be set by AssetsManager.
|
||||
*/
|
||||
virtual void onError(AssetsManager::ErrorCode* errorCode) = 0;
|
||||
|
||||
virtual void onUpdate(float* percent) = 0;
|
||||
};
|
||||
|
||||
|
||||
#endif /* defined(__AssetsManager__) */
|
||||
|
|
|
@ -117,6 +117,8 @@ void UpdateLayer::reset(cocos2d::CCObject *pSender)
|
|||
#endif
|
||||
// Delete recorded version codes.
|
||||
getAssetsManager()->deleteVersion();
|
||||
|
||||
createDownloadedDir();
|
||||
}
|
||||
|
||||
void UpdateLayer::enter(cocos2d::CCObject *pSender)
|
||||
|
@ -139,23 +141,7 @@ bool UpdateLayer::init()
|
|||
{
|
||||
CCLayer::init();
|
||||
|
||||
pathToSave = CCFileUtils::sharedFileUtils()->getWritablePath();
|
||||
pathToSave += "tmpdir";
|
||||
// Create the folder if it doesn't exist
|
||||
#if (CC_TARGET_PLATFORM != CC_PLATFORM_WIN32)
|
||||
DIR *pDir = NULL;
|
||||
|
||||
pDir = opendir (pathToSave.c_str());
|
||||
if (! pDir)
|
||||
{
|
||||
mkdir(pathToSave.c_str(), S_IRWXU | S_IRWXG | S_IRWXO);
|
||||
}
|
||||
#else
|
||||
if ((GetFileAttributesA(pathToSave.c_str())) == INVALID_FILE_ATTRIBUTES)
|
||||
{
|
||||
CreateDirectoryA(pathToSave.c_str(), 0);
|
||||
}
|
||||
#endif
|
||||
createDownloadedDir();
|
||||
|
||||
CCSize size = CCDirector::sharedDirector()->getWinSize();
|
||||
|
||||
|
@ -187,3 +173,25 @@ AssetsManager* UpdateLayer::getAssetsManager()
|
|||
|
||||
return pAssetsManager;
|
||||
}
|
||||
|
||||
void UpdateLayer::createDownloadedDir()
|
||||
{
|
||||
pathToSave = CCFileUtils::sharedFileUtils()->getWritablePath();
|
||||
pathToSave += "tmpdir";
|
||||
|
||||
// Create the folder if it doesn't exist
|
||||
#if (CC_TARGET_PLATFORM != CC_PLATFORM_WIN32)
|
||||
DIR *pDir = NULL;
|
||||
|
||||
pDir = opendir (pathToSave.c_str());
|
||||
if (! pDir)
|
||||
{
|
||||
mkdir(pathToSave.c_str(), S_IRWXU | S_IRWXG | S_IRWXO);
|
||||
}
|
||||
#else
|
||||
if ((GetFileAttributesA(pathToSave.c_str())) == INVALID_FILE_ATTRIBUTES)
|
||||
{
|
||||
CreateDirectoryA(pathToSave.c_str(), 0);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -50,12 +50,14 @@ public:
|
|||
UpdateLayer();
|
||||
~UpdateLayer();
|
||||
virtual bool init();
|
||||
|
||||
void enter(cocos2d::CCObject *pSender);
|
||||
void reset(cocos2d::CCObject *pSender);
|
||||
void update(cocos2d::CCObject *pSender);
|
||||
|
||||
private:
|
||||
AssetsManager* getAssetsManager();
|
||||
void createDownloadedDir();
|
||||
|
||||
cocos2d::CCMenuItemFont *pItemEnter;
|
||||
cocos2d::CCMenuItemFont *pItemReset;
|
||||
|
|
Loading…
Reference in New Issue