最近做一个游戏项目,从ios移植到wp8。以下为碰到的问题记录:
从xcode平台拿过来的项目,点击proj.wp8的sln文件
进入工程,点击项目的class文件,会看到只是初始的一些文件,自己编写的源代码并没有被加载。
这时,右键文件,将AppDelegate和HelloWorldScene的cpp和h文件移除,右键classes->添加->现有项,将class中的源文件加入。
加载成功!
调试:
1.一大串类似于“未声明标识符” 之类的错误
文件编码问题。
打开源文件点击另存为,将编码改为 unicode
2.error C2440: “类型转换”: 无法从“void (__thiscall SelectListLayer::* )(void)”转换为“cocos2d::SEL_MenuHandler”
类型错误,转到函数声明处,此例中调用的函数默认参数类型为SEL_MenuHandler。
为函数添加相应的参数,此例中为函数ToCardScene的声明和定义加上CCObject* pSender参数。
3.运行出现内存溢出,图片精灵指针无法读取内存
经测试,每到一些加载大图片的场景就会出这样的错。
跟踪指针,都是无法读取内存。
将图片换成小图片就可以了,换掉某些图片(不必须用png的地方尽量用jpg)。
这是因为wp8默认是横屏显示的。
到项目同名cpp中找到SetWindow函数,
DisplayProperties::AutoRotationPreferences = DisplayOrientations::Landscape;
Landscape表是横屏显示,改为Portrait即可。
VS下中文貌似不是UFT8编码的,由于前面的原因改了编码,所以中文乱码了
改为英文,不解释。
6.背景图片显示不全(整个屏幕可视窗口比在xcode模拟器里小)
分辨率问题。iphone默认640*1136,而wp8默认480*800。
改图片分辨率,调整精灵位置(不要做基于像素的操作,对移植性不好)。
运行成功: