⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 globals.h

📁 《Visual C 6.0高级编程技术——DirectX篇》程序源代码
💻 H
字号:
#include <ddraw.h>
#include <dinput.h>
#include "mmsystem.h"
#include <dsound.h>

#define   WRITEBITMAPS

#define   STACKUP   "StackUp"
#define   SCREEN_XSIZE          640
#define   SCREEN_YSIZE          480

  short g_Options_nPlayerNum;
  short g_Options_nPF_XSize;
  short g_Options_nPF_YSize;
  bool  g_Options_bStartFilled;
  bool  g_Options_nPF_ObjType;
  short g_Options_nPF_ObjNum;
  short g_Options_nPF_ObjXSize;
  short g_Options_nPF_ObjYSize;
  bool  g_Options_bRotateType;
  bool  g_Options_bSoundFX;

// DirectDraw ///////////////////////////////////////////////////////////////

#define DD_BLT(blitting) { while(1) { g_DX_Result = blitting; if(g_DX_Result == DD_OK) break; if(g_DX_Result == DDERR_SURFACELOST) { if(!DD_RestoreAll()) return false; } if(g_DX_Result != DDERR_WASSTILLDRAWING) return false; } if(g_DX_Result != DD_OK) return false; }
#define DD_CHECK_ERROR(ErrorMessage) { if(g_DX_Result != DD_OK) { AfxMessageBox(ErrorMessage); return false; } }
#define WAITFORVB do g_DX_Result = g_lpDD->WaitForVerticalBlank(DDWAITVB_BLOCKBEGIN, NULL); while(g_DX_Result != DD_OK);

  HRESULT                 g_DX_Result;
  LPDIRECTDRAW            g_lpDD;                 // DirectDraw object
  LPDIRECTDRAWSURFACE     g_lpDDS_Primary;        // DirectDraw primary surface
  LPDIRECTDRAWSURFACE     g_lpDDS_Secondary;      // BackBuffer

  bool  g_DD_Init();
  bool  g_DD_RestoreAll();
  void  g_DD_Finish();
  void  g_DD_FlipScreens();
  void g_DD_PalleteToBack(LPDIRECTDRAWPALETTE);

// DirectInput //////////////////////////////////////////////////////////////

#define DIRECTINPUTVERSION  0x0300                // version 3.0
#define DINPUT_BUFFERSIZE       16                // Number of buffer elements
#define DI_CHECK_ERROR(ErrorMessage) { if(g_DX_Result != DI_OK) { AfxMessageBox(ErrorMessage); return false; } }

  HRESULT                 g_DI_Result;
  LPDIRECTINPUT           g_lpDI;
  LPDIRECTINPUTDEVICE     g_lpDI_Keyboard;
  DIDEVICEOBJECTDATA      g_DI_rgdod[DINPUT_BUFFERSIZE];   // Receives buffered data
  DWORD                   g_DI_InOut;                      // the number of elements

  bool  g_DI_Init();
  void  g_DI_Finish();
  void  g_DI_GetKeyboardData();

// DirectSound //////////////////////////////////////////////////////////////

#define DS_CHECK_ERROR(ErrorMessage) { if(g_DX_Result != DS_OK) { AfxMessageBox(ErrorMessage); return false; } }
#define DS_CB_ERROR(ErrorMessage) { AfxMessageBox(ErrorMessage); return false; }

  bool                  g_bSoundPresent;
  LPDIRECTSOUND         g_lpDS;

  bool g_DS_Init();
  void g_DS_Finish();

/////////////////////////////////////////////////////////////////////////////

#ifdef WRITEBITMAPS
  HANDLE DDBToDIB(CBitmap&, DWORD, CPalette*);
  BOOL WriteDIB(LPTSTR, HANDLE);
  BOOL WriteWindowToDIB(LPTSTR, CWnd*);
#endif

/////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -