首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

Box2d源码学习<5>b2Timer、b2Draw和b2Settings的实现

2012-12-17 
Box2d源码学习五b2Timer、b2Draw和b2Settings的实现本系列博客是由扭曲45原创,欢迎转载,转载时注明出处,h

Box2d源码学习<五>b2Timer、b2Draw和b2Settings的实现

本系列博客是由扭曲45原创,欢迎转载,转载时注明出处,http://blog.csdn.net/cg0206/article/details/8280463

今天我们要说在公共模块剩下的三个小模块的实现,分别是:计时器类、调试辅助类、和box2d引擎设置部分。

1、 计时器b2Timer

计时器主要是用来计算一段时间内的时间,通过对某个函数执行计时,可用来查看相关函数的效率和性能。Box2d中主要针对window系统和类unix系统(如linux、OS X)进行了实现。它们主要是通过宏开关控制的,像window系统上的宏是_WIN32,linux系统上的宏是__linux__,OS X系统上的宏则是__APPLE__,这些在不同系统的编译器中一般是有定义的,不要我们手动去改,如果真的没有不妨自己在文件中手动定义一下,碰碰运气。Box2d源码学习<5>b2Timer、b2Draw和b2Settings的实现

好了,废话不多说,上代码:

//box2d当前版本号b2Version b2_version = {2, 2, 1};/*************************************************************************** 功能描述:申请内存* 参数说明:size : 申请大小* 返 回 值: (void)**************************************************************************/void* b2Alloc(int32 size){return malloc(size);}/*************************************************************************** 功能描述:释放内存* 参数说明:mem : 内存头* 返 回 值: (void)**************************************************************************/void b2Free(void* mem){free(mem);}/*************************************************************************** 函数名称:b2Log* 功能描述:打印log* 参数说明:string :打印字符串            ...    :参数列表* 返 回 值: (void)**************************************************************************/void b2Log(const char* string, ...){#if defined(SHP)#ifdef _DEBUG__App_info(__PRETTY_FUNCTION__ , __LINE__, string);#endif#elseva_list args;va_start(args, string);vprintf(string, args);va_end(args);#endif}

通过这过我们可以看到,我们使用的是box2d 版本号2.2.1,接下来是对c中内存管理函数malloc和free函数的封装,好处就是如果使用了不同与malloc/free的接口,我们可以在此次快速的替换。而不需要找其他任何文件。

 

公共部分终于讲完了,下面我们将会学习碰撞部分。以上部分,根据本人理解所写,若有不妥或错误之处,还请大家多多指正。

热点排行