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

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

相关文章
|
6天前
【QCustomPlot库绘制曲线应用】
【QCustomPlot库绘制曲线应用】
12 0
|
6月前
|
算法 数据可视化 Windows
【Win32绘图编程,GDI绘图对象】绘图基础,位图处理,绘图消息处理,画笔,画刷,文本绘制(下)
【Win32绘图编程,GDI绘图对象】绘图基础,位图处理,绘图消息处理,画笔,画刷,文本绘制
|
6月前
|
API 图形学
【Win32绘图编程,GDI绘图对象】绘图基础,位图处理,绘图消息处理,画笔,画刷,文本绘制(上)
【Win32绘图编程,GDI绘图对象】绘图基础,位图处理,绘图消息处理,画笔,画刷,文本绘制
|
11月前
|
前端开发
Delphi绘图功能[1] —— 入门(绘制直线和矩形)
Delphi绘图功能[1] —— 入门(绘制直线和矩形)
270 0
Delphi绘图功能[1] —— 入门(绘制直线和矩形)
|
Windows
【OpenGL】十九、OpenGL 绘制模式 ( 绘制线框模式 | 绘制点模式 )(二)
【OpenGL】十九、OpenGL 绘制模式 ( 绘制线框模式 | 绘制点模式 )(二)
219 0
【OpenGL】十九、OpenGL 绘制模式 ( 绘制线框模式 | 绘制点模式 )(二)
【OpenGL】十一、OpenGL 绘制多个点 ( 绘制单个点 | 绘制多个点 )
【OpenGL】十一、OpenGL 绘制多个点 ( 绘制单个点 | 绘制多个点 )
204 0
【OpenGL】十一、OpenGL 绘制多个点 ( 绘制单个点 | 绘制多个点 )
unity3dUGUI空对象实现射线检测
using UnityEngine; using System.Collections; namespace UnityEngine.UI { public class Empty4Raycast : MaskableGraphic ...
2317 0