Cocos2dx 中CCAssert 断言操作的使用。

今天在浏览代码是遇到了CCAssert的操作,但之前并未遇到并且使用过  ,于是翻阅了下资料,记录下来方便以后查找并与大家分享。

所谓断言操作(CCAssert)也就类似于断断点的功能。在遇到满足我们的断言条件的时候会中断程序,使用断言能创建更加稳定丶品质更好且不宜于出错的代码。

首先在cocos中我们的断言(CCAssert)定义如下:我们可以看到这个函数有俩个参数,第一个cond即为我们需要满足的条件,第二个为抛出的消息msg。

下面进行实例操作:首先我们需要new一个cocos的工程,然后写上测试代码:

在上述代码中我们可以知道当我们的cond条件不满足的时候会中断程序,而我们此时的cond判断为cond==2 ;显然是不成立的,此时就会中断,我们开始执行。

执行结果我们可以看出程序发生中断,而且log抛出的消息msg 也在输出栏打印出来,这样我们就可以很方便的找到我们需要改进处理的地方,断言操作的作用也就得到了很明显的体现。

时间: 2024-10-16 06:34:11

Cocos2dx 中CCAssert 断言操作的使用。的相关文章

Cocos2d-x中创建SQLite数据库

我们下边介绍如何通过SQLite3提供的API实现MyNotes数据库创建.创建数据库一般需要经过如下三个步骤.(1) 使用sqlite3_open函数打开数据库.(2) 使用sqlite3_exec函数执行Create Table语句,创建数据库表.(3) 使用sqlite3_close函数释放资源.在这个过程中,我们使用了三个SQLite3 API函数,它们都是纯C语言函数.在Cocos2d-x中通过C++调用C函数当然不是什么问题,NoteDAO.cpp中的NoteDAO::initDB(

cocos2dx中怎样把texture保存为pvr或者pvr.ccz格式的文件

本文给大家介绍下在cocos2dx中怎样把texture保存为pvr或者pvr.ccz格式的文件 pvr格式的数据在IOS上直接交给显卡渲染的,而cocos2dx 中的texture是直接交给显卡渲染的,所以理论上将pvr格式的数据可以不进行任何数据的转换就可以生成一张texture,事实上确实是这样的. 一, 保存为pvr格式 要保存pvr文件,我们首先分析cocos2dx引擎中是怎样解析pvr文件的.可以看到cocos2dx库中的CCTexturePVR类提供了两个方法来解析pvr格式图片分

cocos2dx中的内存管理机制及引用计数

1.内存管理的两大策略: 谁申请,谁释放原则(类似于,谁污染了内存,最后由谁来清理内存)--------->适用于过程性函数 引用计数原则(创建时,引用数为1,每引用一次,计数加1,调用结束时,引用计数减1,当引用计数为0时,才会真正释放内存) --------->适用于注册性函数(消息处理,中断等场合) 2.cocos2dx中的内存管理采用引用计数和内存托管的原则 spr->retainCount();//获取对象的引用计数值 spr->retain();//引用计数加1 spr

Cocos2d-x中的坐标系

绘图坐标系.它是最常见的坐标系,与OpenGL采用的坐标系相同,以左下角为原点,向右为x轴正方向,向上为y轴正方 向,如图 3-1 所示.在 Cocos2d-x 中,一切绘图相关的操作都使用绘图坐标系,如游戏元素中的 Position 和 AnchorPoint 等属性. 纹理坐标系.纹理坐标系以左上角为原点,向右为x轴正方向,向下为y轴正方向,如图3-2所示.在Cocos2d-x中,只 有从纹理中截取部分矩形时才使用这个坐标系,如 CCSprite 的 TextureRect 属性. 简单地接

cocos2dx中的核心类

一.节点类(Node) 任何要显示在屏幕上的的对象都是结点类,最常见的有场景(Scene),层(Layer),菜单(Menu)精灵(Sprite),菜单类是层的一个子类,层的初始化默认锚点是(0,0),精灵的默认锚点是(0.5,0.5).一个层或一个精灵在它父类上的位置setposition()函数,其实指的是锚点的位置.并且node的旋转,缩放,平移各种action都是基于锚点来进行的. 二.导演类(Director) Director类是cocos2D-x游戏引擎的核心,它用来创建并控制主屏

【转载】cocos2dx 中 Android NDK 加载动态库的问题

原文地址:http://blog.csdn.net/sozell/article/details/10551309 cocos2dx 中 Android NDK 加载动态库的问题 闲聊 最近在接入各个平台的SDK,遇到了不少问题,也从中了解了不少知识,之前一直觉得没啥好写的,毕竟做了4个月的游戏开发,也没有碰上什么真正的大问题,cocos2dx的引擎包得也很好,能让人把大部分时间都关注在游戏逻辑.效果的处理上,当然,之前的libevent还是小坑一下,但是和后来遇到的相比,也算不上什么了. 我最

(20)Cocos2d-x中的引用计数(Reference Count)和自动释放池(AutoReleasePool)

引用计数 引用计数是c/c++项目中一种古老的内存管理方式.当我8年前在研究一款名叫TCPMP的开源项目的时候,引用计数就已经有了. iOS SDK把这项计数封装到了NSAutoreleasePool中.所以我们也在Cocos2d-x中克隆了一套CCAutoreleasePool.两者的用法基本上一样,所以假如你没有涉及过ios开发,你可以看看苹果官方文档NSAutoreleasePool Class Reference. CCAutoreleasePool Cocos2d-x的CCAutore

Cocos2d-X中的字体

Cocos2d-X中显示文本的方式有下面三种: CCLabelTTF: 使用系统字体,每个字符串会生成一个纹理,显示效率比较低下,适合不变化的文字 CCLabelAtlas: 使用NodeAtlas优化渲染,适合经常变化的数字,比如分数,金钱之类的数字 CCLabelBMFont: 使用CCSpriteBatchNode,很灵活,每个字符都是一个精灵,可以对每个字符进行操作,直接使用图片,将文字画在 设置文本的字体为CCLabelTTF //在层上设置属性 bool Label::init()

如何在cocos2d-x中使用ECS(实体-组件-系统)架构方法开发一个游戏?

引言 在我的博客中,我曾经翻译了几篇关于ECS的文章.这些文章都是来自于Game Development网站.如果你对这个架构方式还不是很了解的话,欢迎阅读理解 组件-实体-系统和实现 组件-实体-系统. 我发现这个架构方式,是在浏览GameDev上的文章的时候了解到的.很久以前,就知道了有这么个架构方法,只是一直没有机会自己实践下.这一次,我就抽空,根据网上对ECS系统的讨论,采用了一种实现方法,来实现一个. 我很喜欢做游戏,所以同样的,还是用游戏实例来实践这个架构方法.我将会采用cocos2