[cocos2d-x篇]CocosBuilder製作出來的動畫停滯不動

文章攢寫時間︰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的部落格

沒有留言 :

張貼留言