上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)); }