[SpriteLevel篇]物理引擎執行過慢

cocos2dx使用版本︰v 2.0.4
cocosBuilder使用版本︰v 2.0 alpha 1

一、問題

今天遇到從SpriteHelper-->LevelHelper啟動物理引擎物件時,
使用內建的Scene Test測試物件很流暢,
但是在實機測試卻很慢的問題。

二、解決辦法

原來是我在SpriteHelper的一個Sheet裡放置的背景圖片太大張了,
導致程式在讀取圖檔時本身就已經很耗效能,
再加上物理引擎就吃不消了。

[LevelHelper篇]createPhysicBoundaries時,物件沒有掉落至指定區域

cocos2dx使用版本︰v 2.0.4
cocosBuilder使用版本︰v 2.0 alpha 1

一、問題

我在LevelHelper裡設定好一個Sprite物件掉落至下圖指定區塊,
並使用 loader->createPhysicBoundaries(world); 載入邊距資料。

但實機在測試時卻掉落至螢幕底端,
沒有尊照LevelHelper定義出來的位置。



二、解決辦法

後來才知道,在update()函式中,
需要將setPosition的方式改變⋯
myActor->setPositioin( CCPointMake ( b-> GetPosition().x * PRM_RATIO, b->GetPosition().y * PTM_RATIO) );
需要改成
myActor->setPosition(LevelHelperLoader::metersToPoints(b->GetPosition()));

因為整個position的設定方式已經被LevelHelper掌控了,
故需要將setPosition的方式交給LevelHelperLoader::metersToPoints去處理。

物件的掉落位置終於到我們想放置的位置(見下圖)