都说cocos2d-x是基于节点树渲染的2D引擎(还有一种是用指令方式进行绘制的引擎,在功能机时代很常见)。
但是节点树是神马玩意,节点树是神马概念。最近市面上cocos2d-x的书比较多,如果你有幸买了一本的话,上面大约会写上因为opengl的绘制方式xxx,所以我们xxx,然后xxx。恩。但是这非常抽象。很不直观。
![6c19279ejw1e5iax5067jj207o052t8l.jpg wKiom1LOpcWxEtyTAAA-t9BRE60319.jpg](https://i-blog.csdnimg.cn/blog_migrate/5bead9997c8b01922a116c9de179f324.jpeg)
而且,关于节点树的引擎,其实在进行绘图位置调试时,是有缺陷的。因为用的全是相对坐标,你经常搞不清楚把东西到底画哪去了,是跑屏幕外面了,还是被神马东西盖住了。这块就不如指令方式绘制的代码来的直观。
为了让大家能实际的看到这颗树,也为了方便你调试绘图位置。我做了一个简单的代码,可以在控制台输出整棵树,当然根节点是由你来选择的。代码如下:
![6c19279ejw1e5iazkupjyj20im0jodhv.jpg wKioL1LOpjbwRGbSAAIdNChTGG4300.jpg](https://i-blog.csdnimg.cn/blog_migrate/f2ef3db7d674a357506b5f0a9bfdb6ef.jpeg)
![6c19279ejw1e5ib3me4ivj20gy0ftgmq.jpg wKiom1LOplyTslP5AAFb9PRkqqw392.jpg](https://i-blog.csdnimg.cn/blog_migrate/d55142888a8c868fbb529cd1bd29d78b.jpeg)
很简单的递归输出,然后我们只有打印一下输出变量s就行。
但是要注意,因为在渲染时可能存在对子节点的重排序,所以为了保证输出的结果正确,你要先强制重排序一把。
下面是调用代码:
![6c19279ejw1e5ib6wjtyjj20ct02kglk.jpg wKioL1LOppqBFUR3AABGYtVK55k643.jpg](https://i-blog.csdnimg.cn/blog_migrate/b44fcb443b78fe18f73eb7e5ff0acb54.jpeg)
我们来打印helloworld例子里面的那颗节点树。下面是输出结果:
![6c19279ejw1e5ib8ma16hj20hm049t97.jpg wKiom1LOpsihKfKHAACw9MB_ttQ854.jpg](https://i-blog.csdnimg.cn/blog_migrate/6018fabab241062c44c8076beeec6113.jpeg)
这个代码可以做很多功能,当然你可以自己扩充一下咯。
代码下载在底下:(引擎版本2.13)
本文出自 “老G的小屋” 博客,请务必保留此出处http://4137613.blog.51cto.com/4127613/1350243