Utility.h
资源名称:g.rar [点击查看]
上传用户:laitongbao
上传日期:2021-02-20
资源大小:8176k
文件大小:2k
源码类别:

射击游戏

开发平台:

Visual C++

  1. /***********************************************************************************************
  2. *工具函数(一般用于内部使用)                                                                                       *
  3. * *
  4. * *
  5. * *
  6. *************************************************************************************************/
  7. #include<d3d9.h>
  8. #include<d3dx9.h>
  9. #define INITGUID
  10. #include <dmusici.h>
  11. #include <dshow.h>
  12. #include <windows.h>
  13. #include <stdio.h>
  14. class Particle_Emit;
  15. class MeshObject;
  16. struct VECTOR;
  17. //UI最多可包含文字数,以字节为单位
  18. #define MAXTEXT 800
  19. #pragma once
  20. typedef struct MEM_FILE_TYP//用于存放内存中的文件及大小
  21. {
  22. void* buffer;
  23. DWORD size;
  24. } MEM_FILE,*MEM_FILE_PTR;
  25. //定义宏
  26. inline DWORD FtoDW( FLOAT f ) { return *((DWORD*)&f); }
  27. #define S_DELETE(pointer) if(pointer)delete pointer
  28. #define S_DELETEARRAY(pointer) if(pointer)delete[] pointer
  29. #define S_RELEASE(pointer) if(pointer)pointer->Release()
  30. #define S_CLEANUP(pointer) if(pointer)pointer->CleanUp()
  31. //录入工具函数
  32. LPDIRECT3DTEXTURE9 LoadTexture(TCHAR* name,DWORD colorKey);//录入贴图到LPDIRECT3DTEXTURE9
  33. LPDIRECT3DTEXTURE9 LoadTextureFromMemory(void* buffer,DWORD size,DWORD colorKey);
  34. HRESULT SetVertexBuffer(IDirect3DVertexBuffer9* pVertexBuffer,void*vertex,int size);//设置点缓存
  35. MEM_FILE LoadFileToMemory(TCHAR* fileName);//把文件录入内存
  36. //绘图工具函数
  37. void DrawWire(VECTOR*pt,int numPoints,DWORD color=0xff44ff44);
  38. //快速碰撞检测
  39. class SoundPlayer
  40. {
  41. public:
  42. SoundPlayer(TCHAR* filename=NULL);
  43. void InitSoundDevice();
  44. void PlaySound(int repeats=0);//播放声音指定次数次,-1次代表无限重复
  45. void StopSound();
  46. void ReloadSound(TCHAR* filename);
  47. void ReleaseSoundDevice();
  48. private:
  49. IDirectMusicLoader8*  m_pLoader           ;
  50. IDirectMusicPerformance8* m_pPerformance  ;
  51. IDirectMusicSegment8*   m_pSegment        ;
  52. };
  53. class MusicPlayer
  54. {
  55. public:
  56. MusicPlayer(TCHAR* filename=NULL);
  57. void InitSoundDevice();
  58. void PlaySound(int repeats=0);//播放声音指定次数次,-1次代表无限重复
  59. void StopSound();
  60. void Pause();
  61. void ReloadSound(TCHAR* filename);
  62. void ReleaseSoundDevice();
  63. private:
  64. HRESULT SwapSourceFilter(WCHAR*wFileName);
  65. IGraphBuilder *m_pGraph;
  66. IMediaControl *m_pControl;
  67. IMediaEvent   *m_pEvent;
  68. IMediaSeeking *m_pMediaSeeking;
  69. IBaseFilter   *m_pSourceCurrent;
  70. IBaseFilter   *m_pSourceNext;
  71. };
  72. void ShowMsg(const TCHAR*str,...);