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

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

概述在cocos2D v3.x中已经不能像在v2.x中那样直接调用ccDrawXXX函数来绘制几何图形了. 我们可以使用CCDrawNode或者CCRenderer来绘制图形. 但是官方的Api手册中说的很清楚,CCDrawNode只推荐放在游戏的调试中调用,因为改变其状态必须先删除再重新添加,导致在绘制大量复杂几何图形时性能会很差. 在cocos2D v2.x中直接调用OpenGL的绘制一般放在dr

在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中即可.

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

总结

以上是内存溢出为你收集整理的Cocos2D中使用CCDrawNode绘制几何图形崩溃的解决全部内容,希望文章能够帮你解决Cocos2D中使用CCDrawNode绘制几何图形崩溃的解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1074463.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存