1.使用自动适配的HD模式,没法加载资源


再现方法:
开启HD适配
   
   
   
   
  1. pDirector->enableRetinaDisplay(true); 
提供了HD资源,但没有提供SD资源,例如:提供了XXXX-hd.png,但没有提供普通的XXXX.png。 注意该错误复现率不稳定,必须删除手机中的软件,并且clean项目后才有高几率复现。

现象:
在HD手机上加载资源失败,游戏直接卡死

分析:
调试发现fullPathFromRelativePath没法获得正确的路径 只是直接返回了传参给他的文件名

结论:
必须同时提供HD和SD两套图     
     

2.CCMenu自动适配界面错乱

再现方法:
使用CCMenu的自动布局函数,适配临时资源图片,然后换用了 更大的图片资源

现象:
item按钮位置互相叠加

分析:
cocos2d-x的CCMenu有一些很方便 的自动布局函数,如 alignItems XXX等,在资源图片足够小的时候,使用这些函数没有关系,如果图片大,在适配时很可能出现位置重叠.
 
结论:
不怕麻烦的话,手动控制布局最好
 
3.XCode4.2,iTouch2 4.21系统,完全默认配置,建hello world,5.01的touch4能跑,4.21的touch2跑不了
 
再现方法:
在XCode4.2下,用cocos2d-x模版建立helloworld,插上touch2后,点run,编译成功,但是手机上没有任何反应
 
现象:
手机没有任何反应,控制台也没有输出,在设备控制台上,会有类似下面内容:
   
   
   
   
  1. unknown lockdownd[16] : 2ff68000 handle_connection:             Could not receive USB message #6 from Xcode. Killing connection 
 
 
分析:
老版iOS,主要指5.x之前,和5.x的编译参数不同,主要是armv6和armv7的区别,首先按照这个帖子检查自己的设置:
http://stackoverflow.com/questions/6378228/switching-from-xcode3-to-xcode4-cant-load-programs-onto-older-ipod-touch
 
确认无误后,在building setting里面的Architectures中,添加参数armv6
cocos2d-x学习笔记番外篇04:开发问题汇总01_第1张图片
 
结论:
最好每个项目在新建时都如此添加,防止忘记
 
 
4.如何禁止iOS屏幕自动旋转
在重力感应游戏中,经常会造成屏幕自动旋转的情况,这样会造成屏幕倒置,对操作造成不便,禁止重力感应的方法是:
 
在“项目/ios/RootViewController.mm”中,找到如下函数
   
   
   
   
  1. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
  2. //     return UIInterfaceOrientationIsLandscape( interfaceOrientation ); 
  3.      return interfaceOrientation == UIInterfaceOrientationPortrait;   //填写你需要锁定的方向参数 
  4.     // switch to this line if you want to set portrait view 
  5.     // return UIInterfaceOrientationIsPortrait( interfaceOrientation ); 
  感谢6群的朋友提供这个方法,我之前知道一个修改引擎源码的方法 ,这个不用改引擎源码,只改项目代码。