【发布时间】:2014-11-06 08:11:02
【问题描述】:
我写了一个代码来在屏幕上绘制 10 个黄色三角形并旋转它们以像这样动画我将在下面添加 2 帧:
这一切都很好,但是当我添加大约 800 个矩形时,我看到了:
。
如果我有 500 个三角形,我会看到以下问题:
如你所见,我什至没有这些颜色。 (我只有黑色和黄色。)实际上,您可以看到任何颜色,具体取决于三角形的数量。我认为这是一些OpenGL问题。我是 OpenGL 的新手,我想我在 OpenGL 中滥用了一些东西。这是代码。它在 cocos2d-x (C++) 中,但您肯定可以理解这里的操作:
Color4F color1e(239.0f / 255, 255.0f / 255, 138.0f / 255, 1);
auto sunNode = DrawNode::create();
sunNode->setContentSize(_size);
int bansCount = 1000;
Vec2 center(_size / 2);
float angleStep = (2 * 3.1415926) / bansCount;
auto rotated = [angleStep, center](float mult) {
Vec2 vc(0, 0);
vc.rotate(center, angleStep * mult);
return vc - center;
};
for(int i = 0; i < bansCount; i+=2) {
sunNode->drawTriangle(
Vec2(0,0), // vertex 1
rotated(i), // vertex 2
rotated(i + 1), // vertex 3
color1e // color of vertices
);
}
addChild(sunNode, 2); // add to sceen
sunNode->setPosition(center); // position on center
// infinitely rotate
sunNode->runAction(RepeatForever::create(RotateBy::create(0.05, 3.1415926 / 10)));
完整代码在这里,如果有人想查看或实验:https://github.com/jonyrock/Cocos2dxDrawingArtifacts
【问题讨论】:
标签: c++ opengl cocos2d-x cocos2d-x-3.0