05 2011 档案
摘要:初识Visual Leak Detector 灵活自由是C/C++语言的一大特色,而这也为C/C++程序员出了一个难题。当程序越来越复杂时,内存的管理也会变得越加复杂,稍有不慎就会出现内存问题。内存泄漏是最常见的内存问题之一。内存泄漏如果不是很严重,在短时间内对程序不会有太大的影响,这也使得内存泄漏问题有很强的隐蔽性,不容易被发现。然而不管内存泄漏多么轻微,当程序长时间运行时,其破坏力是惊人的,从性能下降到内存耗尽,甚至会影响到其他程序的正常运行。另外内存问题的一个共同特点是,内存问题本身并不会有很明显的现象,当有异常现象出现时已时过境迁,其现场已非出现问题时的现场了,这给调试内存问题带来了很
阅读全文
摘要:AI:NewRiders-2003-AIGameDevelopmentSyntheticCreatureswithLearningandReactiveBehaviorsPremier-AITechniquesforGameDevelopmentART:CharlesRiver-AnimatingReal-TimeGameCharactersPremier.Press,.Game.Art.for.Teens.(2004).LiBAudio:Premier.Press.Beginning.Game.Audio.Programming.eBook-LiBWordware.DirectX9Audi
阅读全文
摘要:CreateMutex作用找出当前系统是否已经存在指定进程的实例。如果没有则创建一个互斥体。CreateMutex()函数可用来创建一个有名或无名的互斥量对象,其函数原型为VC声明HANDLE CreateMutex( LPSECURITY_ATTRIBUTESlpMutexAttributes, // 指向安全属性的指针 BOOLbInitialOwner, // 初始化互斥对象的所有者 LPCTSTRlpName // 指向互斥对象名的指针 );编辑本段说明创建一个互斥体(MUTEX) 返回值 Long,如执行成功,就返回互斥体对象的句柄;零表示出错。会设置GetLastError。即使返
阅读全文
摘要:1. 游戏编程分块:图像图像;AI部分;基本逻辑与UI部分。2.代码优化:使用二进制移位代替乘除法;适当使用全局变量,可以避免调用函数时的参数传递,提高速度;使用32位变量;尽量避免类型转换,如果必须使用类型转换的话将其放到最后;使用inline函数;使用速查表。如果程序中用到一些数学函数,比如y=f(x),实时计算太耗费时间了,可以预先计算出相应的x,y数值放到一个大表里,在程序运行时只需要到表里查相应的x,y数据即可,这就是用空间换时间的做法;齐次坐标可以将矩阵的各种变换统一表示成矩阵的乘法,二维坐标系的齐次坐标是三维,三维坐标系的齐次坐标则是四维;窗口-视图变换:游戏中有2中坐标,世界坐
阅读全文
摘要:链接:http://www.cnblogs.com/lyc19821/archive/2009/03/11/1408878.html这条路很长,因为需要知道和用到的东西太多了。G8 y4 N% r5 ~m4 X( ~ O. G5 @) J学习次序' k" ~# q( t2 e1、首先是语言方面,这个问题没有太多的选择的余地,基本上是用C和C++;VB的也有,但是很少;C#因为微软的力挺,在游戏开发中也逐渐多了示例。了解基本语义和语法就可以下一步了。如果想C++学精通了在往下学,估计就没有机会往下学了,因为你的热情可能在这都耗费了。这个的学习是要不断重复的
阅读全文
摘要:http://blog.csdn.net/solstice/archive/2010/01/16/5196544.aspx多核时代不宜再用 x86 的 RDTSC 指令测试指令周期和时间虽然 RDTSC 废掉了,性能测试用的高精度计时还是有办法的 [2],在 Windows 用QueryPerformanceCounter 和 QueryPerformanceFrequency,Linux 下用 POSIX 的clock_gettime 函数,以CLOCK_MONOTONIC 参数调用。QueryPerformanceCounter() 错误的情况我们也碰见过,用 SetThreadAffin
阅读全文
摘要:该指令允许有选择性的修改编译器的警告消息的行为指令格式如下:#pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list...]#pragma warning( push[ ,n ] )#pragma warning( pop )主要用到的警告表示有如下几个:once:只显示一次(警告/错误等)消息default:重置编译器的警告行为到默认状态1,2,3,4:四个警告级别disable:禁止指定的警告信息error:将指定的警告信息作为错误报告如果大家对上面
阅读全文
摘要:用户感觉到软件的好用,就是可以定时地做一些工作,而不需要人参与进去。比如每天定时地升级病毒库,定时地下载电影,定时地更新游戏里的人物。要想实现这些功能,就可以使用定时器的API函数CreateWaitableTimer和SetWaitableTimer来实现了,这对API函数创建的时钟是比较精确的,可以达到100倍的10亿分之一秒。函数CreateWaitableTimer和SetWaitableTimer声明如下:WINBASEAPI__outHANDLEWINAPICreateWaitableTimerA( __in_opt LPSECURITY_ATTRIBUTES lpTimerAtt
阅读全文