将cocos2dx+lua创建的游戏port到windows phone

在整个Port的过程中遇到的问题总结如下

1、一定要使用最新版本的cocos2dx,原因大家看一下changelog就知道了,最近的cocos2dx版本都是在修windows phone上的bug,所以为了避免少出问题,还是直接升级到最新版本吧

2、如果你使用的是cocos2dx + lua方式,目前的project-creator并不支持lua版本的windows phone平台,但是cpp版本是支持的,因此我们可以在cpp版本的基础上把libcocoslua以及liblua两个工程加到项目中来即可

3、请一定使用proj.wp8-xaml版本,而不要使用proj.wp8版本来作为你的windows phone工程,原因proj.wp8版本目前对于CCEditBox的支持有问题,并且没有把libcurl.dll以及相关的dll加到xap打包中,如果你一旦使用curl就会出问题。

4、如果使用lua的话,请在libExtensions项目里将LuaCocos2d.cpp文件换成cocos2d_support/LuaCocos2d.cpp,默认是cocos2d_support/platform/winrt/LuaCocos2d.cpp,那个版本没有把CCEditBox以及其他的一些类暴露给lua

5、CocosDenshion在windows phone下只能播放wav类型的文件,如果你是mp3的话,会直接崩溃掉

6、如果你想要将横屏换成竖屏,那么只修改主项目的MainPage.xaml里的SupportedOrientation以及Orientation是不会生效的,原因是这个修改只是将MainPage给修改了,而cocos2dx是用d3d来渲染的,你还得告诉d3d目前已经换成竖屏了,具体做法是直接调用Cocos2dRenderer的OnOrientationChanged方法,但是调用这个方法前一定要确保CCEGLView已经初始化,我的是在Cocos2dRenderer::CreateGLResources里初始化那里完成的。另外请注意一定要设置DesiginResolution否则你看到的可能就是一小块,这个大家遇到了就知道怎么做了。

7、如果你想看到Lua里打印出来的日志,那需要在libcocoslua工程里将debug模式下加入COCOSDEBUG=1

8、如果使用了自定义的shader,需要变成precompiled,否则会报错,显示错乱

9、wp8上一直cpu使用率很高,使用profile看到是因为CCHttpClient占用了很大的cpu,于是仔细检查了一下发现原来pthread_cond_wait在wp8下没有实现,于是你懂的

10、补充一个,CCFreeFont的实现有很大的问题,每次都load字体,分配内存,这种实现方式极不科学,会导致整个UI很卡,我自己做了个优化,将字体文件加载一次后缓存,这样的话会多用几十M的内存,但是UI打开速度可以优化到可接受范围内


目前遇到并已经解决的问题主要就是上面这些,还没解决的一些问题包括

1、莫名崩溃

2、有一些TableView的显示错位

这两个问题都已经进入业务层了,目前还不确认是cocos2dx的问题还是我们的问题,但是其他平台包括win32确实没发现有这个问题。

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值