cocos2d 使用遇到的问题和解决办法
[TOC]
Q 1: 如何解决中文乱码?
A1: 直接看正确的示例代码,杂七杂八的代码太多,跟上版本的是下面这个
xml文件
1 2 3 4
| <dict> <key>HelloWorldStringkey> <string>你好,世界string> dict>
|
解析xml文件的代码。需要注意按键值获取中文内容保存为char*指针后,用于创建的label类是CCLabelTTF,而不是Label.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| CCDictionary *strings = CCDictionary::createWithContentsOfFile("strings.xml"); const char *HelloWorld = ((CCString*)strings->objectForKey("HelloWorldString"))->m_sString.c_str(); CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCLabelTTF *label0 = CCLabelTTF::create("你好,世界","arial",72); label0->setPosition(ccp(visibleSize.width/2,2*visibleSize.height/3)); this->addChild(label0); CCLabelTTF *label1 = CCLabelTTF::create(HelloWorld,"arial",72); label1->setPosition(ccp(visibleSize.width/2,visibleSize.height/3)); this->addChild(label1);
|
Q2:xml文件资源(字体,图片等等)的放置的正确位置?
A2:xml文件需要放在整个顶级项目文件里头的resources文件夹,而不是放在win32项目的resource…..坑。。具体可以看初始代码引用字体文件的路径。
Q3: 一开始打开项目文件发现文件不可用或者项目文件被卸载?
A3:文件路径被改变,重新解压cocos安装包,重新安装。并且存放路径不能出现中文。
Q4: 编译时出现 libbox.lib不是有效的win32程序?
A4:需要将hellococos项目设置为启动项。
Q5:当出现许多.h 文件不可用的时候?
A5:重定解决方案目标
Q6:本地坐标系和世界坐标系如何互换计算
1 2 3 4
| CCPoint p1 = sprite2->convertToNodeSpace(sprite1->getPosition()); CCPoint p2 = sprite2->convertToWorldSpace(sprite1->getPosition()); CCPoint p3 = sprite2->convertToNodeSpaceAR(sprite1->getPosition()); CCPoint p4 = sprite2->convertToWorldSpaceAR(sprite1->getPosition());
|
计算方法都是用sprite1的坐标去加减sprite2的坐标,针对本地坐标系就用减法,针对世界坐标系就用加法。
Last updated:
Thanks for your reading :) | URL
https://joshuaqyh.github.io/2018/07/27/Q&A_cocos2d/