将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 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的更多相关文章
- cocos2d-x学习笔记(18)--游戏打包(windows平台)
cocos2d-x学习笔记(18)--游戏打包(windows平台) 之前做好的游戏,都是在vs2008下编译执行的.假设说想把游戏公布到网上或者和其它人一起分享游戏,那就得对游戏 ...
- cocos2d-x lua 内存回收
使用cocos2d-x lua架构,游戏中存在两种内存回收方式. 1.cocos2d-x 本身内存回收 PS:假设在lua在创建一个类,继承cocos2d-x的一个类A,则该A也遵循cocos2d-x ...
- 第一个Cocos2d-x Lua游戏
我们的编写的第一个Cocos2d-x Lua程序,命名为HelloLua,从该工程开始学习其它的内容.创建工程我们创建Cocos2d-x Lua工程可以通过Cocos2d-x提供的命令工具cocos实 ...
- Cocos2d-x Lua游戏开发Mac环境搭建以及一点点感悟
接触Cocos2d-x 最近由于公司项目的需要,自己开始接触Cocos,开始做一些简单的轻量级的游戏,以前没有接触过这一块的东西,也是借助这个机会学习一下游戏的开发,由于以前自己接触的全都是iOS和A ...
- 【COCOS2DX-LUA 脚本开发之一】在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)并介绍脚本在游戏中详细用途!
[COCOS2DX-LUA 脚本开发之一]在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)并介绍脚本在游戏中详细用途! 分类: [Cocos2dx Lua 脚本开发 ] 2012-04-1 ...
- 创建cocos2d-x+lua项目
1> 创建cocos2d-x+lua项目 进入到cocos2d-x-2.1.5\tools\project-creator文件夹运行下面命令: python create_project ...
- quick cocos2dx lua 内存释放
前言 对于内存的优化,网上有很多例子和教程.总体来说,就那么几种解决方案,在最后我会简单提下,这里先说下在quick中,对于图片的处理. 1.查看内存调试信息 对于quick框架的了解,我们可以参考\ ...
- Cocos2d-x Lua 阅读Csv文件,使用数据更方便
在我的书或出售之前,我的源代码,有Csvshadow文件. 也许这是偏见.我与工作将是最长的轮廓Csv,所以,我会帮助不大喜欢它的游戏. Csv文件,非常格式easy,也就是说,一个数据线,字段之间用 ...
- [Cocos2d-x]Lua 资源热更新
什么是热更新 所谓的热更新,指的是客户端的更新. 大致的流程是,客户端在启动后访问更新的URL接口,根据更新接口的反馈,下载更新资源,然后使用新的资源启动客户端,或者直接使用新资源不重启客户端. 热更 ...
随机推荐
- 三点半们耐热i哦好家哦i囧囧【
http://pan.baidu.com/share/link?shareid=3011665141&uk=338692646&third=15 http ...
- 怎样使用docker不加sudo
有时候发现docker有的指令必须加sudo才干运行,通过下面三步设置便可不加sudo直接运行docker指令: 1. 假设还没有docker group就加入一个: sudo groupadd do ...
- Android它SDK Manager无法更新终极解决方案
前些日子.Google终于发布Android5.0正式版--棒糖.也许你和我一样,,此外,我想在第一时间更新SDK,结果打开SDK Manager,但令人失望,络围墙啊.默默问一句:近期好久没有听到方 ...
- SWT的TitleAreaDialog详解
转自:http://www.cnblogs.com/AllenYoung/archive/2006/10/05/521805.html Dialog是SWT和JFace的一个重要的组成部分,我们在开发 ...
- poj3176--Cow Bowling(dp:数塔问题)
Cow Bowling Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14028 Accepted: 9302 Desc ...
- Spring jdbc 对象Mapper的简单封装
一般查询实体的时候,都需要这么使用/** * 根据id查询 * * @return */ public Emp queryEmpById(Intege ...
- phpcms v9框架的目录结构分析
phpcms v9框架的目录结构分析: 了解v9框架的目录结构,有助于帮助我们快速建立起对v9框架的一个整体认识 打开"mycms"项目,有如下文件和目录 使用 ...
- .net Work Flow 4.0
工作流 依据 WfMC 的定义.工作流(WorkFlow)就是自己主动运作的业务过程部分或总体.表现为參与者对文件.信息或任务依照规程採取行动,并令其在參与者之间传递.官方的总是非常抽象,抽象是为了可 ...
- 修改系统启动项 grub2配置的方法 ubuntu[转]
在 早期的Ubuntu中,使用Grub作为系统的启动引导程序,想修改系统启动项非常简单,只要用gedit打开系统菜单设定文件( sudo gedit /boot/grub/menu.lst ),修改该 ...
- Cocos2d-x3.0 lua捆绑C++分类
我知道这个纪录Lua结合整个过程. 原文地址:http://blog.csdn.net/qqmcy/article/details/26099859 准备工作: 1.创一个一个Lua的2dxproje ...