转自:http://blog.sina.com.cn/s/blog_61d2d3f50100zgz8.html

一.   CC_ASSERT 或 CCAssert宏

Assert - 断言

  使用断言可以创建更稳定,品质更好且不易于出错的代码。当需要在一个值为FALSE时中断当前操作的话,可以使用断言。单元测试必须使用断言。
  除了类型检查和单元测试外,断言还提供了一种确定各种特性是否在程序中得到维护的极好的方法。

通过使用CC_ASSERT或者CCAssert,我们可以检测代码是否有多用、用错等情况,比如:

// [Test] 每生成一个对象,计数器+1 【判断对象是否不小心创建了多个。】
CCAssert( ++t_gameLayer_GameLayer_Count == , "GameLayer对象生成超过个!" ); // 校验输入的index是否是否超过默认穴位组的大小【5-8个】。【判断输入的index是否超出范围】
CC_ASSERT("参数id超出默认穴位组大小!" && index< MAX_HITPOINT_SIZE && index>=);

程序运行时突然报错,然后弹出窗口提示“GameLayer对象生成超过个!”,这样我们就知道GameLayer这个对象多创建了,然后就根据vs2008“调用堆栈”窗口,看看代码的执行顺序,就可以知道代码是哪里写错了,进而改正,让代码更加健壮。

两个宏的用法差不多,看看源代码就懂了,实际上它们就是同一个东西啦。

#ifndef CCAssert
#define CCAssert(cond, msg) CC_ASSERT( msg && cond)
#endif // CCAssert #ifdef _DEBUG
#define CC_ASSERT(cond) (void)( (!!(cond)) || (badaAssert(__PRETTY_FUNCTION__ , __LINE__ , #cond),0) )
#else
#define CC_ASSERT(cond) void(0)
#endif
#endif

二.CCNS.h

最近在看cocos2d-x的源代码,发现CCNS.h这个类有几个函数挺实用的,简单翻译一下。

/ *
@描述: 根据给定的字符串格式,返回一个CCRect对象。
@参数:
pszContent:一个格式为:"{{x,y},{w, h}}"的字符串。 x:x轴;y:y轴;w:宽;h:高。
取值可以是int或者float型。
例子:"{{3,2},{4,5}}"。
@返回:如果参数的格式不正确,则返回CCRectZero。
* /
CCRect CC_DLL CCRectFromString(const char* pszContent);
/ *
@描述:根据给定的字符串格式,返回一个CCpoint对象。
@参数:
pszContent: 一个格式为:"{x,y}"的字符串。x:x轴;y:y轴。
取值可以是int或者float型。
例子:"{3.0,2.5}"。
@返回:如果参数的格式不正确,则返回CCPointZero。
* /
CCPoint CC_DLL CCPointFromString(const char* pszContent);
/ *
@描述:根据给定的字符串格式,返回一个CCSize对象。
@参数:
pszContent:一个格式为:"{w,h}"的字符串。w:宽度;h:高度。
取值可以是int或者float型。
例子:"{3.0,2.5}"。
@返回:如果参数的格式不正确,则返回CCSizeZero。
* /
CCSize CC_DLL CCSizeFromString(const char* pszContent);

用法:

CCPoint tPosition = CCPointFromString("{0,12}");

如果CCRect、CCPoint或CCSize是通过外部文件(xml,ini)加载的话,这几个函数就很实用了。

cocos2d-x编程的一些小技巧的更多相关文章

  1. 25条div+CSS编程提醒及小技巧整理

    1.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值. 2.同一个的class选择符可以在一个文档中重复出现,而id选择符却只能出现一次:对一个标签同时使用clas ...

  2. 关于php编程的一些小技巧

    1. NULL,0和空的区分判断 (1)0与空的区分 <?php  $a = 0;if($a==''){ echo '此判断条件不能区分';}else{ echo '此判断条件可以区分';} ? ...

  3. Shellcode编程小技巧

    工作需要,需要注入其他程序监控一些东西,检测到的数据通过WM_COPY 消息发送给显示窗体.(大体是这样的还没定稿) ##1 选择一个框架 ## tombkeeper/Shellcode_Templa ...

  4. 使用IntelliJ IDEA的小技巧快乐编程(1)

    前言 我很喜欢和别人讨论一些问题,有时候,在公司里,讨论这样的问题需要演示代码.常常会碰到的一种情况是(根据我的记忆这半年多来至少超过了10次),别人会打断你的演示,抛出一个问题:等等,你刚才的操作是 ...

  5. Java编程小技巧(1)——方法传回两个对象

    原文地址:Java编程小技巧(1)--方法传回两个对象 | Stars-One的杂货小窝 题目是个伪命题,由Java语法我们都知道,方法要么返回一个对象,要么就不返回 当有这样的情况,我们需要返回两个 ...

  6. 学会这些 pycharm 编程小技巧,编程效率提升 10 倍

    PyCharm 是一款非常强大的编写 python 代码的工具.掌握一些小技巧能成倍的提升写代码的效率,本篇介绍几个经常使用的小技巧. 一.分屏展示 当你想同时看到多个文件的时候: 1.右击标签页: ...

  7. iOS:小技巧(不断更新)

    记录下一些不常用技巧,以防忘记,复制用. 1.获取当前的View在Window的frame: UIWindow * window=[[[UIApplication sharedApplication] ...

  8. 一些Python的惯用法和小技巧:Pythonic

    Pythonic其实是个模糊的含义,没有确定的解释.网上也没有过多关于Pythonic的说明,我个人的理解是更加Python,更符合Python的行为习惯.本文主要是说明一些Python的惯用法和小技 ...

  9. ( 译、持续更新 ) JavaScript 上分小技巧(一)

    感谢好友破狼提供的这篇好文章,也感谢写这些知识点的作者们和将他们整理到一起的作者.这是github上的一篇文章,在这里本兽也就只做翻译,由于本兽英语水平和编程能力都不咋地,如有不好的地方也请多理解体谅 ...

随机推荐

  1. JniHelper 含安卓推送

    using System; using System.Runtime.CompilerServices; using UnityEngine; internal static class JniHel ...

  2. POJ1177+线段树+扫描线

    思路: 以y的值进行离散化 根据x的值 对每一条y轴边进行处理,如果是"左边"则插入,是"右边"则删除. /* 扫描线+线段树+离散化 求多个矩形的周长 */ ...

  3. Easyui Datagrid rownumbers行号四位、五位显示不完全的解决办法

    Easyui Datagrid rownumbers行号四位.五位显示不完全的解决办法(引) 方法一: 相信很多人在使用easyui的时候都遇到过这个问题,当我们设置成显示Rownumber的时候,你 ...

  4. Earth Mover's Distance (EMD)

    原文: http://d.hatena.ne.jp/aidiary/20120804/1344058475作者: sylvan5翻译: Myautsai和他的朋友们(Google Translate. ...

  5. 这些小众软件让你的效率提升N倍!(必备,收藏)

    大部分的我们,电脑买来之后,软件越装越多,电脑越来越卡,导致工作的效率也是越来越低. 同时还可能长期处于软件安装完又卸载的无限恶性循环中.提高工作效率是我们利用电脑办公的一大优势,安装好的软件更是可以 ...

  6. 手势识别官方教程(7)识别缩放手势用ScaleGestureDetector.GestureDetector和ScaleGestureDetector.SimpleOnScaleGestureListener

    Use Touch to Perform Scaling As discussed in Detecting Common Gestures, GestureDetector helps you de ...

  7. OLEDB和ODBC的区别(优缺点)

    ODBC是一种连接数据库的开放标准,OLEDB(对象链接和嵌入数据库)位于ODBC层与应用程序之间. 在你的ASP页面里,ADO是位于OLEDB之上的应用程序. 你的ADO调用先被送到OLEDB,然后 ...

  8. WPF——文本随滚动条改变而改变

    一.造一个窗体,拖进一个文本框TextBox和滚动条Slider 二.让文本框的内容随滚动条的滚动而改变,即文本框绑定到滚动条上 三.实现效果

  9. windows上制作懒人版MAC cdr/iso

    本教程以XPS15 L501X机型为例在windows7下讲解Lion纯净系统的制作及安装过程,以及一些后续美化,如果已有mac系统,就更简单了,照猫画虎即可.主楼的帖子对新手来讲信息量太大,所以关于 ...

  10. android WebViewClient的方法解释

    1.在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边. public boolean shouldOverrideUrlLo ...