cocos2d-x sprite animation using .plist

Iam new to cocos2d-x and having problem running sprite animation from .plist file in android. below is the code iam using to animate my sprite in ccTouchesBegan

I have my plist file in resources folder

`void HelloWorld::ccTouchesBegan(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent)
{
mole->stopAllActions();

CCArray *frames = CCArray::create();
for(int i = 1; i <= 11; i++)
{
    CCString *frame = CCString::createWithFormat("b%04d.png", i);
    frames->addObject(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(frame->getCString()));
}
mole->runAction(CCAnimate::create(CCAnimation::create(frames,.15)));

}`
and getting the following log:

05-01 16:02:33.328: D/dalvikvm(3506): Added shared lib /data/data/com.cocos.moleit/lib/libgame.so 0x405167e0 05-01 16:02:33.328: I/ApplicationPackageManager(3506): cscCountry is not German : PAK 05-01 16:02:33.359: I/GLThread(3506): noticed surfaceView surface lost tid=10 05-01 16:02:33.367: D/SensorManager(3506): ====>>>>>Num Sensor: 1 05-01 16:02:33.367: D/SensorManager(3506): ====>>>>>Num Sensor: 2 05-01 16:02:33.367: D/SensorManager(3506): ====>>>>>Num Sensor: 3 05-01 16:02:33.367: D/SensorManager(3506): ====>>>>>Num Sensor: 4 05-01 16:02:33.367: D/SensorManager(3506): ====>>>>>Num Sensor: 5 05-01 16:02:33.367: D/SensorManager(3506): ====>>>>>Num Sensor: 6 05-01 16:02:33.367: D/SensorManager(3506): ====>>>>>Num Sensor: 0 05-01 16:02:33.375: I/GLThread(3506): onResume tid=10 05-01 16:02:33.375: D/cocos2d-x debug info(3506): cocos2d: cocos2d-2.1rc0-x-2.1.2 05-01 16:02:33.453: I/GLThread(3506): noticed surfaceView surface acquired tid=10 05-01 16:02:33.453: W/EglHelper(3506): start() tid=10 05-01 16:02:33.523: D/libEGL(3506): loaded /system/lib/egl/libGLES_hgl.so 05-01 16:02:33.531: D/BRCM_EGL(3506): eglCreateContext() context: 0x1ba388, VC context 1, Thread 3515 05-01 16:02:33.531: W/EglHelper(3506): createContext com.google.android.gles_jni.EGLContextImpl4052b938 tid=10
05-01 16:02:33.531: I/GLThread(3506): noticing that we want render notification tid=10
05-01 16:02:33.531: W/GLThread(3506): egl createSurface
05-01 16:02:33.531: W/EglHelper(3506): createSurface() tid=10
05-01 16:02:33.531: D/BRCM_EGL(3506): eglCreateWindowSurface() surface: 0x1ba3f8, VC surface: 1, Thread: 3515
05-01 16:02:33.531: D/BRCM_EGL(3506): eglMakeCurrent(0x1ba388, 0x1ba3f8, 0x1ba3f8) Thread: 3515
05-01 16:02:33.531: W/GLThreadManager(3506): checkGLESVersion mGLESVersion = 131072 mMultipleGLESContextsAllowed = true
05-01 16:02:33.531: W/GLThread(3506): onSurfaceCreated
05-01 16:02:33.601: D/cocos2d-x debug info(3506): cocos2d: GL_VENDOR: Broadcom
05-01 16:02:33.601: D/cocos2d-x debug info(3506): cocos2d: GL_RENDERER: VideoCore IV HW
05-01 16:02:33.601: D/cocos2d-x debug info(3506): cocos2d: GL_VERSION: OpenGL ES 2.0
05-01 16:02:33.601: D/cocos2d-x debug info(3506): cocos2d: GL_MAX_TEXTURE_SIZE: 2048
05-01 16:02:33.601: D/cocos2d-x debug info(3506): cocos2d: GL_MAX_TEXTURE_UNITS: 8
05-01 16:02:33.601: D/cocos2d-x debug info(3506): cocos2d: GL supports PVRTC: NO
05-01 16:02:33.601: D/cocos2d-x debug info(3506): cocos2d: GL supports BGRA8888 textures: NO
05-01 16:02:33.601: D/cocos2d-x debug info(3506): cocos2d: GL supports NPOT textures: YES
05-01 16:02:33.601: D/cocos2d-x debug info(3506): cocos2d: GL supports discard_framebuffer: YES
05-01 16:02:33.601: D/cocos2d-x debug info(3506): cocos2d: GL supports shareable VAO: NO
05-01 16:02:33.601: D/cocos2d-x debug info(3506): cocos2d: compiled with Profiling Support: NO
05-01 16:02:34.484: W/GLThread(3506): onSurfaceChanged(320, 240)
05-01 16:02:34.687: I/GLThread(3506): sending render notification tid=10
05-01 16:02:50.335: E/cocos2d-x assert(3506): C:/tahir/cocos2dx_zip/cocos2d-2.1rc0-x-2.1.2/cocos2d-2.1rc0-x-2.1.2/moleitx/proj.android/…/…/cocos2dx/sprite_nodes/CCAnimation.cpp function:initWithAnimationFrames line:144
05-01 16:02:50.335: E/cocos2d-x assert(3506): C:/tahir/cocos2dx_zip/cocos2d-2.1rc0-x-2.1.2/cocos2d-2.1rc0-x-2.1.2/moleitx/proj.android/…/…/cocos2dx/sprite_nodes/CCAnimation.cpp function:initWithAnimationFrames line:144
05-01 16:02:50.335: E/cocos2d-x assert(3506): C:/tahir/cocos2dx_zip/cocos2d-2.1rc0-x-2.1.2/cocos2d-2.1rc0-x-2.1.2/moleitx/proj.android/…/…/cocos2dx/sprite_nodes/CCAnimation.cpp function:initWithAnimationFrames line:144
05-01 16:02:50.343: E/cocos2d-x assert(3506): C:/tahir/cocos2dx_zip/cocos2d-2.1rc0-x-2.1.2/cocos2d-2.1rc0-x-2.1.2/moleitx/proj.android/…/…/cocos2dx/sprite_nodes/CCAnimation.cpp function:initWithAnimationFrames line:144
05-01 16:02:50.343: E/cocos2d-x assert(3506): C:/tahir/cocos2dx_zip/cocos2d-2.1rc0-x-2.1.2/cocos2d-2.1rc0-x-2.1.2/moleitx/proj.android/…/…/cocos2dx/sprite_nodes/CCAnimation.cpp function:initWithAnimationFrames line:144
05-01 16:02:50.343: E/cocos2d-x assert(3506): C:/tahir/cocos2dx_zip/cocos2d-2.1rc0-x-2.1.2/cocos2d-2.1rc0-x-2.1.2/moleitx/proj.android/…/…/cocos2dx/sprite_nodes/CCAnimation.cpp function:initWithAnimationFrames line:144
05-01 16:02:50.343: E/cocos2d-x assert(3506): C:/tahir/cocos2dx_zip/cocos2d-2.1rc0-x-2.1.2/cocos2d-2.1rc0-x-2.1.2/moleitx/proj.android/…/…/cocos2dx/sprite_nodes/CCAnimation.cpp function:initWithAnimationFrames line:144
05-01 16:02:50.343: E/cocos2d-x assert(3506): C:/tahir/cocos2dx_zip/cocos2d-2.1rc0-x-2.1.2/cocos2d-2.1rc0-x-2.1.2/moleitx/proj.android/…/…/cocos2dx/sprite_nodes/CCAnimation.cpp function:initWithAnimationFrames line:144
05-01 16:02:50.343: E/cocos2d-x assert(3506): C:/tahir/cocos2dx_zip/cocos2d-2.1rc0-x-2.1.2/cocos2d-2.1rc0-x-2.1.2/moleitx/proj.android/…/…/cocos2dx/sprite_nodes/CCAnimation.cpp function:initWithAnimationFrames line:144
05-01 16:02:50.343: E/cocos2d-x assert(3506): C:/tahir/cocos2dx_zip/cocos2d-2.1rc0-x-2.1.2/cocos2d-2.1rc0-x-2.1.2/moleitx/proj.android/…/…/cocos2dx/sprite_nodes/CCAnimation.cpp function:initWithAnimationFrames line:144
05-01 16:02:50.343: E/cocos2d-x assert(3506): C:/tahir/cocos2dx_zip/cocos2d-2.1rc0-x-2.1.2/cocos2d-2.1rc0-x-2.1.2/moleitx/proj.android/…/…/cocos2dx/sprite_nodes/CCAnimation.cpp function:initWithAnimationFrames line:144
on line 144: i have this

bool CCAnimation::initWithAnimationFrames(CCArray* arrayOfAnimationFrames, float delayPerUnit, unsigned int loops){

CCARRAY_VERIFY_TYPE(arrayOfAnimationFrames, CCAnimationFrame**); // this is line 144 error:
m_fDelayPerUnit = delayPerUnit;
m_uLoops = loops;
setFrames);
CCObject** pObj = NULL;
CCARRAY_FOREACH(m_pFrames, pObj)
{
CCAnimationFrame* animFrame = (CCAnimationFrame*)pObj;
m_fTotalDelayUnits += animFrame->getDelayUnits();
}
return true;
}
@
please help
Regards,
Muhammad Tahir Ashraf

anyone hereto help?

It seems that you are adding the frames to the array and not the names, try to add only the names to the array or use the createWithSpriteFrames method of CCAnimation.

Ex.
CCAnimation::createWithSpriteFrames(frames,.15)

Artavazd Barseghyan Thanks alot! you made me through it works! :):smiley: