精通Cocos2d-x游戏开发(进阶卷)
上QQ阅读APP看书,第一时间看更新

11.2 使用DrawNode绘制图元

DrawNode是一个用于绘制图元的Node类,使用DrawNode来绘制图元比使用DrawingPrimitives提供的绘制接口轻松很多,因为省去了自定义一个节点类、添加渲染命令、实现渲染接口等烦琐的步骤。只需要创建一个DrawNode对象,调用该对象绘制方法,并将它添加到场景中即可

除了使用上更加简单方便之外,DrawNode也比DrawingPrimitives提供的绘制接口更加高效,因为DrawNode内部实现了渲染批处理,在绘制大量图元时会更加高效。

cpp-tests示例中的DrawNodeTest示例演示了如何使用DrawNode进行图元渲染,以下是DrawNodeTest的关键代码,比DrawPrimitivesTest要简单得多。

        DrawNodeTest::DrawNodeTest()
        {
            auto s = Director::getInstance()->getWinSize();
            auto draw = DrawNode::create();
            addChild(draw, 10);
            draw->drawPoint(Vec2(s.width/2-120, s.height/2-120), 10,
            Color4F(CCRANDOM_0_1(), CCRANDOM_0_1(), CCRANDOM_0_1(), 1));
        }