首页 > 代码库 > 将cocos2dx+lua创建的游戏port到windows phone
将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
目前遇到并已经解决的问题主要就是上面这些,还没解决的一些问题包括
1、莫名崩溃
2、有一些TableView的显示错位
这两个问题都已经进入业务层了,目前还不确认是cocos2dx的问题还是我们的问题,但是其他平台包括win32确实没发现有这个问题。