Cocos2D中使用CCDrawNode绘制几何图形崩溃的解决

前端之家收集整理的这篇文章主要介绍了Cocos2D中使用CCDrawNode绘制几何图形崩溃的解决前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在cocos2D v3.x中已经不能像在v2.x中那样直接调用ccDrawXXX函数来绘制几何图形了.

我们可以使用CCDrawNode或者CCRenderer来绘制图形.

但是官方的Api手册中说的很清楚,CCDrawNode只推荐放在游戏的调试中调用,因为改变其状态必须先删除再重新添加,导致在绘制大量复杂几何图形时性能会很差.

在cocos2D v2.x中直接调用OpenGL的绘制一般放在draw方法中,但是在v3.4中实际测试发现,将CCDrawNode的绘制放在draw会导致App崩溃,错误大意为不能在遍历数组时改变其中的元素状态.

我推测是因为在draw中会遍历其中的可绘制节点,其中就包括了我们添加的CCDrawNode,然而在draw中我们修改了CCDrawNode的状态,所以App会崩溃.

换一种方法,将CCDrawNode的绘制放在update中即可.

当然,这样做只是在绘制节点会随着游戏状态发生改变时才有必要,如果绘制的节点永远不发生变化,直接放到类实例的初始化中就可以了.

原文链接:https://www.f2er.com/cocos2dx/340848.html

猜你在找的Cocos2d-x相关文章