Cocos2d-X的testcpp代码有没有错?
Is there any wrong in the testcpp code of Cocos2d-X?
我下载了 Cocos2d-X 并编译了 testcpp。但是它有问题,我定位它,发现下面的代码有问题。
debugForNormalSprite->drawPoints(positions, 4, 8, Color4F{0.0,1.0,1.0,1.0});
在我检查了 drawPoints 函数的定义之后。我将大括号更改为括号并且有效。是源代码错误还是我的编译器错误?我认为最后一个参数只是传递值的临时对象,对吗?提前致谢。
你看到的叫统一初始化,是C++11标准新增的。基本上,这只是调用构造函数的另一种方式,所以
Color4F{0.0,1 .0,1.0,1.0}
等同于
Color4F(0.0,1.0,1.0,1.0)
在这里您可以通过一个简单的例子了解它是如何工作的:ideone.com/heJJuI
关于你的编译问题,可能是旧的编译器不支持统一初始化造成的。你可以尝试从 Ideone 编译这个例子来解决这个问题(只是不要忘记用 C++11/14 支持编译它)。
我下载了 Cocos2d-X 并编译了 testcpp。但是它有问题,我定位它,发现下面的代码有问题。
debugForNormalSprite->drawPoints(positions, 4, 8, Color4F{0.0,1.0,1.0,1.0});
在我检查了 drawPoints 函数的定义之后。我将大括号更改为括号并且有效。是源代码错误还是我的编译器错误?我认为最后一个参数只是传递值的临时对象,对吗?提前致谢。
你看到的叫统一初始化,是C++11标准新增的。基本上,这只是调用构造函数的另一种方式,所以
Color4F{0.0,1 .0,1.0,1.0}
等同于
Color4F(0.0,1.0,1.0,1.0)
在这里您可以通过一个简单的例子了解它是如何工作的:ideone.com/heJJuI
关于你的编译问题,可能是旧的编译器不支持统一初始化造成的。你可以尝试从 Ideone 编译这个例子来解决这个问题(只是不要忘记用 C++11/14 支持编译它)。