【发布时间】:2014-02-16 07:43:15
【问题描述】:
该死的!我想通过 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));
}
};
但这也没有用!我怎么能做这个最简单的事情?我错过了什么吗?
【问题讨论】:
标签: c++ cocos2d-x cocos2d-x-3.0