最近完成了一款游戏的android平台移植,从ios平台移植到android平台,使用的框架是cocos2d-x,有几个点总结一下
1:刚移植的时候,出现了一个状况,就是当layer上面有ccmenuitemimage时,你点击layer的任一地方,程序就会crash掉,花了三天的时候去解决这个问题,实在找不到原因,网上也有人遇到这样的问题,但是没有解答,没有办法,最后把cocos2d-x的版本从cocos2d-1.0.1-x-0.11.0换成cocos2d-1.0.1-x-0.12.0问题就解决了,真的很无语。看来cocos2d-x引擎还是存在一些bug,特别是在android平台上
2:我们移植的时候,是现在vs上进行调试,因为vs检测比较严格,所以一般如果vs没有问题的话,android下用ndk也没有太大的问题,但是由于ndk对stl支持的不好,所以很多方法在android下并没有实现,需要我们手动去写一个方法,比如sort,stable_sort,还有remove方法都得自己重新实现一个
3:android最后打成的是.apk包,实际上就是个压缩包,所以有些读取文件的类就不能使用了,比如ifstream这个类,网上说的是“ifstream can not read within the zip file. ”,所以在android就该类就没法用了,我的解决方案是使用使用了框架里的CCFileData方法,这个方法内部是使用fopen 进行读取,这个方法可以使用
4:由于android手机屏幕分辨率太多,所以很多游戏在android手机下使用了缩放,缩放后的位置,是根据设置的anchorpoint有关,anchorpoint如果为(0.5,0.5)话,缩放后物体居中缩放
1:刚移植的时候,出现了一个状况,就是当layer上面有ccmenuitemimage时,你点击layer的任一地方,程序就会crash掉,花了三天的时候去解决这个问题,实在找不到原因,网上也有人遇到这样的问题,但是没有解答,没有办法,最后把cocos2d-x的版本从cocos2d-1.0.1-x-0.11.0换成cocos2d-1.0.1-x-0.12.0问题就解决了,真的很无语。看来cocos2d-x引擎还是存在一些bug,特别是在android平台上
2:我们移植的时候,是现在vs上进行调试,因为vs检测比较严格,所以一般如果vs没有问题的话,android下用ndk也没有太大的问题,但是由于ndk对stl支持的不好,所以很多方法在android下并没有实现,需要我们手动去写一个方法,比如sort,stable_sort,还有remove方法都得自己重新实现一个
3:android最后打成的是.apk包,实际上就是个压缩包,所以有些读取文件的类就不能使用了,比如ifstream这个类,网上说的是“ifstream can not read within the zip file. ”,所以在android就该类就没法用了,我的解决方案是使用使用了框架里的CCFileData方法,这个方法内部是使用fopen 进行读取,这个方法可以使用
4:由于android手机屏幕分辨率太多,所以很多游戏在android手机下使用了缩放,缩放后的位置,是根据设置的anchorpoint有关,anchorpoint如果为(0.5,0.5)话,缩放后物体居中缩放