在整个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 phoneproject,原因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里打印出来的日志,那须要在libcocosluaproject里将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确实没发现有这个问题。

将cocos2dx+lua创建的游戏port到windows phone的更多相关文章

  1. cocos2d-x学习笔记(18)--游戏打包(windows平台)

    cocos2d-x学习笔记(18)--游戏打包(windows平台)           之前做好的游戏,都是在vs2008下编译执行的.假设说想把游戏公布到网上或者和其它人一起分享游戏,那就得对游戏 ...

  2. cocos2d-x lua 内存回收

    使用cocos2d-x lua架构,游戏中存在两种内存回收方式. 1.cocos2d-x 本身内存回收 PS:假设在lua在创建一个类,继承cocos2d-x的一个类A,则该A也遵循cocos2d-x ...

  3. 第一个Cocos2d-x Lua游戏

    我们的编写的第一个Cocos2d-x Lua程序,命名为HelloLua,从该工程开始学习其它的内容.创建工程我们创建Cocos2d-x Lua工程可以通过Cocos2d-x提供的命令工具cocos实 ...

  4. Cocos2d-x Lua游戏开发Mac环境搭建以及一点点感悟

    接触Cocos2d-x 最近由于公司项目的需要,自己开始接触Cocos,开始做一些简单的轻量级的游戏,以前没有接触过这一块的东西,也是借助这个机会学习一下游戏的开发,由于以前自己接触的全都是iOS和A ...

  5. 【COCOS2DX-LUA 脚本开发之一】在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)并介绍脚本在游戏中详细用途!

    [COCOS2DX-LUA 脚本开发之一]在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)并介绍脚本在游戏中详细用途! 分类: [Cocos2dx Lua 脚本开发 ] 2012-04-1 ...

  6. 创建cocos2d-x+lua项目

    1>     创建cocos2d-x+lua项目 进入到cocos2d-x-2.1.5\tools\project-creator文件夹运行下面命令: python create_project ...

  7. quick cocos2dx lua 内存释放

    前言 对于内存的优化,网上有很多例子和教程.总体来说,就那么几种解决方案,在最后我会简单提下,这里先说下在quick中,对于图片的处理. 1.查看内存调试信息 对于quick框架的了解,我们可以参考\ ...

  8. Cocos2d-x Lua 阅读Csv文件,使用数据更方便

    在我的书或出售之前,我的源代码,有Csvshadow文件. 也许这是偏见.我与工作将是最长的轮廓Csv,所以,我会帮助不大喜欢它的游戏. Csv文件,非常格式easy,也就是说,一个数据线,字段之间用 ...

  9. [Cocos2d-x]Lua 资源热更新

    什么是热更新 所谓的热更新,指的是客户端的更新. 大致的流程是,客户端在启动后访问更新的URL接口,根据更新接口的反馈,下载更新资源,然后使用新的资源启动客户端,或者直接使用新资源不重启客户端. 热更 ...

随机推荐

  1. SE 2014年4月29日

    交换网络中有vlan1 到20个vlan,要求使用MSTP技术实现vlan的负载分担. SW2为实例1(vlan1-vlan10)的主根,SW3为备根 SW3为实例2(vlan11-vlan20)的主 ...

  2. 用Java写个ftp传输类实现文件的上传和下载,用ikvmc转成dll

    1.Java类: package com.wjy.ftp.transmission; import java.io.File; import java.io.FileOutputStream; imp ...

  3. sleep和wait的区别

    sleep指线程被调用时,占着CPU不工作,形象地说明为“占着CPU睡觉”,此时,系统的CPU部分资源被占用,其他线程无法进入,会增加时间限制.wait指线程处于进入等待状态,形象地说明为“等待使用C ...

  4. C#函数参数传递解惑

    C#语言函数参数的传递   就像C语言众多的后世子孙一样,C#的函数参数是非常讲究的.首先,参数必须写在函数名后面的括号里,这里我们有必要称其为形参.参数必须有一个参数名称和明确的类型声明.该参数名称 ...

  5. gwt CellTable中的控件按Tab键切换

    默认是 cellTable.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED); 如果要Tab,则设置为DISABLED; 并将其t ...

  6. sql小技巧 group by datetime类型字段,只取其中的日期部分

    工作中经常会遇到,要在sql中查询报表,查询结果要求按照日期来罗列, 或按照天, 或按照月,年. 这个时候我们经常会苦恼,datetime是精确到毫秒的,如果单纯的group by datetime就 ...

  7. linux下安装cmake和mysql遇到的问题总结

    首先是在安装cmake的过程中遇到的问题: 1.開始使用yum命令安装时,不知道为什么一直不行,然后就准备wget 来先下载压缩包,再手动编译. 因为网络限制,wget不能下载外网的东西一直显示con ...

  8. tarjan+缩点

    B - Popular Cows Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Su ...

  9. windows phone 了解LinearGradientBrush类和RadialGradienBrush类(11)

    原文:windows phone 了解LinearGradientBrush类和RadialGradienBrush类(11) 我们了解到在能在xaml中完成的设计,一般在隐藏文件中也可通过代码完成: ...

  10. graph driver-device mapper-01driver初始化

    // thin device数据结构 type DevInfo struct { Hash string `json:"-"` DeviceId int `json:"d ...