该死的!我想通过 cocos2d-x 做世界上最简单的事情,但我遇到了问题。我需要一个红色矩形上的白色层。首先,我发现为了给我必须从中派生的图层着色cocos2d::LayerColor
,LayerColor::initWithColor(Color4B(255, 255, 255, 255))
然后我了解到为了绘制一个矩形,我应该像这样覆盖 draw 方法:
void HelloWorld::draw()
{
DrawPrimitives::setDrawColor4F(1.0f, 0.0f, 0.0f, 1.0f);
DrawPrimitives::drawRect(Point(100,100), Point(400,400));
}
这些东西分开工作,但它们不能一起工作。我想当我覆盖绘图时,所有绘图都会减少到这两个函数调用,因此我的图层背景变成黑色。这个最简单的事情的解决方案在哪里?
编辑:
我试图LayerColor::draw
像这样调用被覆盖的:
void HelloWorld::draw()
{
LayerColor::draw();
DrawPrimitives::setDrawColor4F(1.0f, 0.0f, 0.0f, 1.0f);
DrawPrimitives::drawRect(Point(100,100), Point(400,400));
}
没有帮助。尝试从 sprite 派生并 addChild 到图层,如下所示:
class BoardView : public Sprite
{
public:
BoardView() : Sprite()
{
}
virtual void draw() override
{
DrawPrimitives::setDrawColor4F(1.0f, 0.0f, 0.0f, 1.0f);
DrawPrimitives::drawRect(Point(100,100), Point(400,400));
}
};
但这也没有用!我怎么能做这个最简单的事情?我错过了什么?