新建的一个cocos工程没有改过任何代码直接编译居然报错了?
百度了一下原来是因为vs2012不支持c++11的部分特性
cocos2dx 3.10正好就用到了vs2012不支持的那部分特性,所以报错了。
解决方法
打开UIScale9Sprite.cpp
用Ctrl+G跳到UIScale9Sprite.cpp(1172)改成:
- //uvCoordinates = {Vec2(u0,v3), Vec2(u3,v0)};
- Coordinates.push_back(Vec2(u0,v3));
- uvCoordinates.push_back(Vec2(u3,v0));
- //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));
- //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));