cocos2d-x 2.2 移植wp8遇到的坑

这两天正在将之前的一款cocos2d游戏,移植到wp平台上,这里记录一下所遇到的问题以及解决方法。

我是用的cocos2d下面的例子程序进行修改的。

遇到的第一个问题是资源路径的问题,当时我把解决方案下面的Assert删除后自己又新建了Resources目录,但是导入资源时选择了与Classes同级目录的Resources目录,所以导致在程序中资源的路径都是根目录,没有文件夹了。后来用bing(这里吐槽一下,百度实在是无语,但是Google又太慢,有时候都打不开,所以bing是比较靠谱的)搜了下,找到了解决方案。

这是在微软官方找到的关于资源相关的东西,很不错,大家可以仔细看看

https://app.yinxiang.com/shard/s26/sh/d9a12437-c105-4c4d-8caf-dbcb2823396f/d2fb1c713a33365d4de3d29950dbf592

资源问题解决后,就剩下真机上测试了,用开发者帐号解锁手机后,便能很容易部署到手机上。

哈哈,部署过程中遇到一个小问题,手机上能够部署成功,但是随后弹出一个对话框说,

查了好多资料,尝试了好多方法,最后在没办法只能按照最后一个没尝试的方法,就是装了vs update4,哈哈,很神奇,竟然可以了。

接下来就要开始上传xap包了,这里碰到的问题也是让我弄了好长时间。下面我来说一说:

第一次是在上传到商店后,检测如下错误

1028: 程序集 libEGL_phone.dll 中不允许本机 API
MSVCP110D.dll:[email protected]@@[email protected]()。请更新该程序集,然后重试。

1028: 程序集 libGLESv2_phone.dll 中不允许本机 API
MSVCP110D.dll:[email protected][email protected]@@QBA_NXZ()。请更新该程序集,然后重试。

1028: 程序集 libEGL_phone.dll 中不允许本机 API
MSVCR110D.dll:__dllonexit()。请更新该程序集,然后重试。

于是将debug改为release后大部分问题已经没有了。

但是还剩下三个

国内的资料实在太少,于是google之,终于在cocos2d的官方网站上有人提问,找到了解决方案,原来是一些函数调用的本机的api,于是在整个解决方案中搜索CreateEventEx
 OutputDebugStringA

然后将它们注释掉后就ok了。

CCCommon.cpp

CCWinRTUtils.h

Audio.h

主要在上面这三个文件中

原来的链接如下,http://www.cocos2d-x.org/forums/6/topics/37119

哈哈,完成这步后终于上传成功,填写完一些基本资料,就能提交审核了,wp的审核速度就是快,头天提交,第二天就通过了,不过就是推广不好弄。

哈哈,大家赏个脸,支持下我的游戏喽。http://www.windowsphone.com/s?appid=4c893618-144d-44e3-842f-2f770e444ab8

时间: 2024-12-24 23:12:16

cocos2d-x 2.2 移植wp8遇到的坑的相关文章

手游:cocos2d-x3.0 移植 wp8 开发 各种 “蛋疼”问题的汇总

蛋疼的问题的起源: wp8 做应用开发,显示显示中文,源码包含中文都是没有一点问题的, 只是cocos2d-x 的编码方式(UTF-8),引起的一系列的问题. 1:不能显示服务器返回的中文 2:c++ 包含中文的问题 解决方案: 微米黑--开元字体库, 提点:  非常小 ----未完待续... 手游:cocos2d-x3.0 移植 wp8 开发 各种 "蛋疼"问题的汇总,布布扣,bubuko.com

Cocos2d-x移植WP8时间CCScrollView问题

cocos2d-x 2.2中的CCScrollView和CCTableView存在bug.导致区域裁剪错误 我是这样解决的. 在CCEGLView::setScissorInPoints里.依据不同旋转方向,设置不同參数 void CCEGLView::setScissorInPoints(float x , float y , float w , float h) { switch(m_orientation) { case DisplayOrientations::Landscape: gl

Cocos2dx开发windows phone时,VS2013设置为横屏竖屏问题

1.首先打开自己的windows phone的项目: 2.把项目打开,可看到如下的结构: 3.然后点击MainPage.xaml文件,可以看到如下结构: 然后左边是显示的模拟器,右边是代码,Landscape表示的是横屏,Portrait表示的是竖屏,如图所示: 这样就可以设置横屏竖屏了,如果你只是点击模拟器中的旋转来调试横屏竖屏,根本就没用,还是要代码才能解决吧: 这是在移植wp8的时候一些总结,在移植过程中,各种坑爹的语法都有,有些改了就可以用了,但也许你不知道为什么, 哈哈,真是,可能是兼

Windows Phone 8.1商店启动协议

最近开发wp8.1已经两个月了,感觉坑不少,原来8时代的商店api多明了,微软不给封装就算了,至少你要在msdn上明显的地方标注下啊...................顺便在吐槽下bing,找了一个下午没找到有用的资料,最起码你也整合一下 微软生态的资料啊.................. 前面纯属吐槽可以略过................. 下面正题,其实就是第三方启动协议,只是我们不知道启动协议的标准罢了.................... var uri = new Uri(st

Cocos2d-x游戏移植到WP8之路 -- c++和c#交互

Cocos2d-x是眼下最流行的手机游戏引擎之中的一个,开源.轻量.多平台等的诸多特性使得它被非常多国内外手游开发人员所喜爱. 利用Cocos2d-x来开发Windows Phone 8的游戏相同也是非常的方便高效. 当然不论什么跨平台的游戏引擎,终于解决的都仅仅能是游戏层面的问题:包含场景的管理.图形的渲染.真实物理世界的模拟等:要想真正在一个平台上把游戏做好.不可避免会遇到非常多和平台相关的问题,须要我们每一个游戏程序猿对于该平台的技术有个比較深入的了解.在Windows Phone 8这个

Cocos2d-x项目移植到WP8系列之二:开篇

开发环境一笔带过吧,主板和CPU要支持虚拟化技术,要开启才行,装个64位win8.1系统,win8不好用,我用的是vs2012,然后装个wp8的SDK,再装个vs2012的补丁4,最后能把模拟器跑起来能上网就可以了.模拟器上网这也是个蛋疼问题,如果电脑是通过路由器DHCP自动分配IP模拟器能正常上网,但在公司里电脑是根据Mac地址绑定IP的,模拟器上不了网,这里面碰到问题的话自行谷歌吧. 公司的框架是在Cocos2d-x的框架之上稍微封装了一下,方便加上一些自己的功能,总的来说就是业务层用Lua

Cocos2d-x项目移植到WP8系列之一:前传

许久没动笔了,随想一直都有动笔的想法,但拖来拖去,归根到底还是一个懒字吧 .发现人的惰性真是太强大了,特别是在像我这种意志不够坚定的人,稍微拖一拖,一个星期,一个月,大半年,就这样都过去了,加上平时的效率也挺低的,时间都浪费得让人心痛,再和一些刚毕业一年的后辈相比,发现根本跟不上他们的步伐,无论是已掌握的技术或者学习新的东西,才猛然惊醒,甚为愧疚.针对性下药,现在强迫自己把一些要做的工作上的事情都写在一个几乎从不关闭的Excel里,每次回到桌面都能看到,还有哪些事情没有完成的,完成后就标记一下,

Cocos2d-x项目移植到WP8系列之三:C++和C#的交互

上一篇提到工程使用 XAML 和 Direct3D 项目模板 是因为要涉及到C++和C#的交互,微软给我们提供了一个叫运行时组件的东西(也就是 windows phone 运行时组件 模板,一下简称winRT组件)来实现两者的交互.winRT组件 工程里用的C++/CX语言(关于winRT自行谷歌),但完全兼容C++.在winRT组件 工程里,里面定义的类和方法只要符合一定的规范,就能被C#的工程直接访问到,那C++如何访问C#呢?毕竟,在Cocos2dx-wp8框架里,除了一开始启动是从xam

Cocos2d-x项目移植到WP8系列之八:CCLabelTTF显示中文不换行

在wp8平台上,CCLabeTTF显示中文不会自动换行,看了下源码,原来底层的实现是根据text的空格进行判断的,每遇到一个空格就判断是否超过label的宽度,超过就换行,但text如果是中文的话,哪来的空格给换行~~ 以下实现全部参考 http://blog.csdn.net/hopingwhite/article/details/38414917 ,整理后的代码如下: 在CCFreeTypeFont.h里的CCFreeTypeFont类添加两个方法: FT_Error addLine(con