GameGlobals.h
上传用户:sycq158
上传日期:2008-10-22
资源大小:15361k
文件大小:2k
源码类别:

游戏

开发平台:

Visual C++

  1. /*******************************************************************
  2.  *         Advanced 3D Game Programming using DirectX 7.0
  3.  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  4.  *   Title: GameGlobals.h
  5.  *    Desc: Some global defines we'll need.
  6.  *          
  7.  * copyright (c) 1999 by Adrian Perez
  8.  * See license.txt for modification and distribution information
  9.  ******************************************************************/
  10. #ifndef _GAMEGLOBALS_H
  11. #define _GAMEGLOBALS_H
  12. #define POWER_OF_2(x) (((x) & ((x)-1))? false : true)
  13. #define DP( a )
  14. {
  15. char buff[1024];
  16. sprintf( buff, a );
  17. OutputDebugString( buff );
  18. }
  19. #define DP0 DP
  20. #define DP1( a, b )
  21. {
  22. char buff[1024];
  23. sprintf( buff, a, b );
  24. OutputDebugString( buff );
  25. }
  26. #define DP2( a, b, c )
  27. {
  28. char buff[1024];
  29. sprintf( buff, a, b, c );
  30. OutputDebugString( buff );
  31. }
  32. #define DP3( a, b, c, d )
  33. {
  34. char buff[1024];
  35. sprintf( buff, a, b, c, d );
  36. OutputDebugString( buff );
  37. }
  38. #define DP4( a, b, c, d, e )
  39. {
  40. char buff[1024];
  41. sprintf( buff, a, b, c, d, e );
  42. OutputDebugString( buff );
  43. }
  44. /**
  45.  * useful here and there, allows the user to 'snap' a variable to lie
  46.  * within the bounds of two inputted vars
  47.  */
  48. template <class T>
  49. static inline Snap( T &a, T min, T max )
  50. {
  51. if( a < min ) 
  52. a = min;
  53. if( a > max ) 
  54. a = max;
  55. }
  56. inline float RandFloat( float min = 0.f, float max = 1.f )
  57. {
  58. return min + (max-min)*((float)rand()/RAND_MAX);
  59. }
  60. #endif //_GAMEGLOBALS_H