vs2012编译cocos2dx 3.10报错解决方法

新建的一个cocos工程没有改过任何代码直接编译居然报错了?

百度了一下原来是因为vs2012不支持c++11的部分特性

cocos2dx 3.10正好就用到了vs2012不支持的那部分特性,所以报错了。

解决方法

打开 UIScale9Sprite.cpp

用Ctrl+G跳到UIScale9Sprite.cpp(1172)改成:
  //uvCoordinates = {Vec2(u0,v3), Vec2(u3,v0)};
uvCoordinates.push_back(Vec2(u0,v3));
            uvCoordinates.push_back(Vec2(u3,v0));

用Ctrl+G跳到 UIScale9Sprite.cpp(1178)改成:
            //uvCoordinates = {Vec2(u0,v3), Vec2(u1,v2), Vec2(u2,v1), Vec2(u3,v0)};
			uvCoordinates.push_back(Vec2(u0,v3));  
			uvCoordinates.push_back(Vec2(u1,v2));  
			uvCoordinates.push_back(Vec2(u2,v1));  
			uvCoordinates.push_back(Vec2(u3,v0));  

用Ctrl+G跳到 UIScale9Sprite.cpp(1216)改成:
 //vertices = {Vec2(offsetLeft * hScale, offsetBottom * vScale),
            //            Vec2(_preferredSize.width - offsetRight * hScale, _preferredSize.height - offsetTop * vScale)};
vertices.push_back(Vec2(offsetLeft * hScale, offsetBottom * vScale));
vertices.push_back(Vec2(_preferredSize.width - offsetRight * hScale, _preferredSize.height - offsetTop * vScale));

用Ctrl+G跳到 UIScale9Sprite.cpp(1307)改成:
//vertices = {Vec2(x0,y0), Vec2(x1,y1), Vec2(x2,y2), Vec2(x3,y3)};
vertices.push_back(Vec2(x0,y0));
vertices.push_back(Vec2(x1,y1));
vertices.push_back(Vec2(x2,y2));
vertices.push_back(Vec2(x3,y3));

然后再编译,问题解决了。




你可能感兴趣的:(cocos2d-x,vs2012)