文章攢寫時間︰2013/02/14 19:15 文章修改時間︰2013/03/09 15:32 文章修改次數︰2一、問題
cocos2dx使用版本︰v 2.0.4
cocosBuilder使用版本︰v 2.0 alpha 1
今天試圖用CocosBuilder 2.1 + Cocos2d-X 2.0.4製作動畫互動遊戲,
但卻遇到CocosBuilder製作出來的動畫,
如果純粹使用
CCNodeLoaderLibrary* nodeLoaderLibrary = CCNodeLoaderLibrary::newDefaultCCNodeLoaderLibrary();
而沒有再加上
nodeLoaderLibrary-> registerCCNodeLoader("GameScene", GameSceneLayerLoader::loader());時,
動畫能正常播放,
加了NodeLoader反而就停滯不動的問題。
一直往CocosBuilder的相關底層CCBReader去找原因,
卻找不到。
二、解決辦法
後來才發現因為我繼承的CCLayer子類別裡,因為有覆寫CCLayer::onEnter(),
但實作時,
忘了在該覆寫函式第1行呼叫︰CCLayer::onEnter()去引用父類別的onEnter()事件導致產生CocosBuilder製作出來的動畫完全停滯不動的問題。
這個問題花了2天終於找到原因。
=======================================
補述︰
onEnter是CCLayer的虛擬函式(virtual method),
virtual void onEnter();virtual method在C++的功能是「多型」,
也就是說,
一旦在子類別實作了此函式,
那麼程式將不會執行父類別的onEnter函式,
而直接呼叫子類的onEnter函式。
詳情可參考Gossip的部落格
沒有留言 :
張貼留言