CDX15EX8.cpp
上传用户:wymy58
上传日期:2007-01-07
资源大小:2086k
文件大小:4k
源码类别:

DirextX编程

开发平台:

Visual C++

  1. // CDX15EX8.cpp : Defines the class behaviors for the application.
  2. #include "stdafx.h"
  3. #include "CDX15EX8.h"
  4. #ifdef _DEBUG
  5. #define new DEBUG_NEW
  6. #undef THIS_FILE
  7. static char THIS_FILE[] = __FILE__;
  8. #endif
  9. const bool g_bFullScreen
  10. #ifdef _DEBUG
  11. = false; // true;
  12. #else
  13. = true; // false;
  14. #endif // _DEBUG
  15. const DWORD g_dwWidth = 640; // 800; // 1024;
  16. const DWORD g_dwHeight = 480; // 600; // 768;
  17. const DWORD g_dwBPP = 8; // 16; // 24; // 32;
  18. CCDX15EX8App::CCDX15EX8App(void)
  19. {
  20. SetFullScreen(g_bFullScreen);
  21. SetPackFileName(_T("data"), _T("gui"));
  22. // Called during initial app startup, this function
  23. // performs all the permanent initialization.
  24. m_pDDDevice = NULL;
  25. m_pRenderSurface = NULL;
  26. // add your permanent init code here !
  27. m_pBackLayer = NULL;
  28. m_pTiles = NULL;
  29. m_pMap = NULL;
  30. }
  31. // Called before the app exits, this function gives the app
  32. // the chance to cleanup after itself.
  33. CCDX15EX8App::~CCDX15EX8App()
  34. {
  35. // add your cleaup code here !
  36. }
  37. bool CCDX15EX8App::GetDXInitSettings(void)
  38. {
  39. if (m_pDirectSound != NULL)
  40. {
  41. if (m_pDirectSound->SelectDSDriver(0) == false)
  42. return  false;
  43. }
  44. if (m_pDirectMusic != NULL)
  45. {
  46. if (m_pDirectMusic->SelectDefaultDMusPort() == false)
  47. return  false;
  48. }
  49. if (m_pDirectDraw->SelectDDDevice(0) == false)
  50. return  false;
  51. if (GetFirstDDDevice()->SelectDisplayMode(
  52. IsFullScreen(), g_dwWidth, g_dwHeight, g_dwBPP) == false)
  53. return  false;
  54. return  true;
  55. }
  56. // Called during device intialization, this code checks the device
  57. // for some minimum set of capabilities, Initialize scene objects.
  58. bool CCDX15EX8App::InitDXObjects(void)
  59. {
  60. m_pDDDevice = GetFirstDDDevice();
  61. m_pRenderSurface = m_pDDDevice->GetRenderSurface();
  62. // add your init code here !
  63. if (m_pDDDevice->LoadPalette(_T("Ledges.bmp"), m_pPackFileManager) == false)
  64. return  false;
  65. // Load the tiles
  66. m_pTiles = new  CDDDIBSurface;
  67. if (m_pTiles->Create(m_pDDDevice, _T("Ledges.bmp"), m_pPackFileManager) == false)
  68. return  false;
  69. m_pTiles->SetRGBColorKey();
  70. // Create and load the map
  71. m_pMap = new  CDXMap;
  72. if (m_pMap->Create(m_pTiles, 5, 5, _T("level.map"), m_pDDDevice, m_pPackFileManager) == false)
  73. return  false;
  74. m_pBackLayer = new  CDDLayer;
  75. if (m_pBackLayer->Create(m_pDDDevice, _T("Forest.bmp"), m_pPackFileManager) == false)
  76. return  false;
  77. return  true;
  78. }
  79. // Called when the app is exitting, or the device is being changed,
  80. // this function deletes any device dependant objects.
  81. bool CCDX15EX8App::DestroyDXObjects(void)
  82. {
  83. // add your destroy code here !
  84. if (m_pBackLayer != NULL)
  85. {
  86. delete  m_pBackLayer;
  87. m_pBackLayer = NULL;
  88. }
  89. if (m_pTiles != NULL)
  90. {
  91. delete  m_pTiles;
  92. m_pTiles = NULL;
  93. }
  94. if (m_pMap != NULL)
  95. {
  96. delete  m_pMap;
  97. m_pMap = NULL;
  98. }
  99. m_pRenderSurface = NULL;
  100. m_pDDDevice = NULL;
  101. return  CDirectXApp::DestroyDXObjects();
  102. }
  103. // Called once per frame, the call is the entry point for
  104. // animating the scene. This function sets up render states,
  105. // clears the viewport, and renders the scene.
  106. bool CCDX15EX8App::UpdateFrame(void)
  107. {
  108. // add your code here !
  109. // m_pRenderSurface->Fill(0);
  110. m_pMap->WrapScrollRight(3);
  111. m_pBackLayer->ScrollRight(1);
  112. m_pBackLayer->Draw(m_pRenderSurface);
  113. // Draw the map to the back buffer
  114. m_pMap->Draw(m_pRenderSurface);
  115. return  CDirectXApp::UpdateFrame();
  116. }
  117. // ---- add your functions ! ----
  118. // ----
  119. #if _MSC_VER >= 1200 && _MSC_VER < 1400
  120. #ifdef _DEBUG
  121. #pragma comment(lib, "DXGuideD_VC6.lib")
  122. #else
  123. #pragma comment(lib, "DXGuide_VC6.lib")
  124. #endif // _DEBUG
  125. #endif // _MSC_VER
  126. #if _MSC_VER >= 1000 && _MSC_VER < 1200
  127. #ifdef _DEBUG
  128. #pragma comment(lib, "DXGuideD_VC5.lib")
  129. #else
  130. #pragma comment(lib, "DXGuide_VC5.lib")
  131. #endif // _DEBUG
  132. #endif // _MSC_VER
  133. BEGIN_MESSAGE_MAP(CCDX15EX8App, CDirectXApp)
  134. //{{AFX_MSG_MAP(CCDX15EX8App)
  135. //}}AFX_MSG_MAP
  136. END_MESSAGE_MAP()
  137. CCDX15EX8App theApp;