今天備注幾個童鞋們可能會遇到的問題:
1. 關于cocos2dx v1.x版本運作在iphone與android平台出現圖檔變白塊,尺寸一樣。圖檔純白問題。
之前出現此問題原因如下:
1.1 ccsprite與ccnode強轉之間的問題造成;
1.2 pvr.ccz的資源大小寬高不是正方形的話(2 的n次幂)
解決方案,之前himi給出方法了,這個問題請看之前的博文:
<a href="http://www.himigame.com/iphone-cocos2dx/703.html">【ios-cocos2d-x 遊戲開發之十一】new ccsprite()帶來的錯誤&使用ccuserdefault及pvr.ccz在cocos2dx中要注意!</a>
今天講解另外一個造成此問題的原因:
原因引擎的粒子系統,當使用粒子系統後,控制台給出警告:
opengl error 0x0500 in -[eaglview swapbuffers]
就因為這個問題會造成在打包好的圖檔白塊化,實出的機型:android平台m9,ios:iphone 4.3.3
關于 這個錯誤的談論文章如下連結:
<a href="http://www.cocos2d-x.org/boards/6/topics/7557?r=19039#message-19039" target="_blank">http://www.cocos2d-x.org/boards/6/topics/7557?r=19039#message-19039</a>
2. himi在cocos2dx 1.x版本運作在ios6中調用gamecenter相關函數,出現如下錯誤:
(備注:此問題不僅僅使用gamecenter,ios6中其它也會遇到)
1
terminating app due to uncaught exception 'uiapplicationinvalidinterfaceorientation', reason: 'supported orientations has no common orientation with the application, and shouldautorotate is returning yes'
解決方案如下:
在調用使用gamecenter的 view controller(報錯的 view controller類)中添加如下三個函數即可:
– (bool)shouldautorotatetointerfaceorientation:(uiinterfaceorientation)interfaceorientation
{
return (interfaceorientation == uiinterfaceorientationlandscapeleft || interfaceorientation == uiinterfaceorientationlandscaperight );
}
-(nsuinteger)supportedinterfaceorientations{
return uiinterfaceorientationmasklandscape;
– (bool)shouldautorotate
return yes;
cocos2dx 一般對于ios平台級别的元件進行使用時,都預設寫在cocos2dx項目下的ios檔案夾下的appcontroller.h/mm 中的。當然你也可以自己定義mm混編類。
3. 第三個問題就是關于cocos2dx 1.x 版本編譯android 一個造成閃退的原因。
對于這個問題出現的種類很多(但是你如果書寫代碼規範基本沒有任何問題),這裡himi給個遇到驗證過的問題吧。
himi 在cocos2dx項目中xcode書寫代碼有如下兩個類,繼承關系如下:
hclassa:public ccsprte
hclassb:public hclassa
如果你強制将hclassa類型強制轉給hclassb對象會造成android閃退的問題!!!!
雖然這種父類強轉子類在java中可以行得通,在ios運作沒有問題,但是!當編譯到android的時候就會出現100%閃退的現象。
關于ndk編譯到android後的調試列印cclog與cclog問題這裡簡單說下:
之前很多童鞋問我,為什麼使用cclog在android不列印,咳咳、童鞋們可以點選進入cclog的定義,它在正式編譯後自動取消不打入代碼中的,而cclog則不是,是以我們想在android進行列印觀察,那麼請使用cclog 。