我是 cocos2d-x 的新手,在 android 中从 .plist 文件运行精灵动画时遇到问题。下面是我在 ccTouchesBegan 中用来为我的精灵设置动画的代码
我在资源文件夹中有我的 plist 文件
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)));
}
并获得以下日志:
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.EGLContextImpl@4052b938 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
第 144 行:我有这个
bool CCAnimation::initWithAnimationFrames(CCArray* arrayOfAnimationFrames, float delayPerUnit, unsigned int loops){
CCARRAY_VERIFY_TYPE(arrayOfAnimationFrames, CCAnimationFrame*); // line 144 error:
m_fDelayPerUnit = delayPerUnit;
m_uLoops = loops;
setFrames(CCArray::createWithArray(arrayOfAnimationFrames));
CCObject* pObj = NULL;
CCARRAY_FOREACH(m_pFrames, pObj)
{
CCAnimationFrame* animFrame = (CCAnimationFrame*)pObj;
m_fTotalDelayUnits += animFrame->getDelayUnits();
}
return true;
}
请帮忙!
问候,穆罕默德·塔希尔·阿什拉夫