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

游戏

开发平台:

Visual C++

  1. //-----------------------------------------------------------------------------
  2. // File: DisplayObject.h
  3. //
  4. // Copyright (C) Microsoft Corporation. All Rights Reserved.
  5. //-----------------------------------------------------------------------------
  6. #pragma once
  7. //-----------------------------------------------------------------------------
  8. // Name: enum OBJECT_TYPE
  9. // Desc: Game object types
  10. //-----------------------------------------------------------------------------
  11. enum OBJECT_TYPE
  12.     OBJ_ENEMY, 
  13.     OBJ_PLAYER, 
  14.     OBJ_BULLET,
  15.     OBJ_PARTICLE,
  16.     OBJ_SPRITE
  17. };
  18. class C3DAudioPath;
  19. class CDisplayObject
  20. {
  21. public:
  22.     CDisplayObject( const OBJECT_TYPE ObjectType );
  23.     virtual ~CDisplayObject(void);
  24.     
  25.     virtual HRESULT OneTimeSceneInit();
  26.     virtual HRESULT InitDeviceObjects();
  27.     virtual HRESULT RestoreDeviceObjects();
  28.     virtual HRESULT FrameMove( const float fElapsedTime ) = 0;
  29.     virtual HRESULT HandleNearbyObject( const float fElapsedTime, CDisplayObject* pObject ) = 0;
  30.     virtual HRESULT FrameMoveFinalize( const float fElapsedTime );
  31.     virtual HRESULT CullObject( const float fWrapOffsetX, const float fWrapOffsetZ, const CULLINFO* const pCullInfo );
  32.     virtual HRESULT Render( const float fWrapOffsetX, const float fWrapOffsetZ, DWORD* pdwNumVerts ) = 0;
  33.     virtual HRESULT InvalidateDeviceObjects();
  34.     virtual HRESULT DeleteDeviceObjects();
  35.     virtual VOID    FinalCleanup();
  36. public:
  37.     CDisplayObject*     m_pNext;            // Link to next object
  38.     CDisplayObject*     m_pPrev;            // Link to previous object
  39.     D3DXVECTOR3         m_vPos;             // Position of center of mass in world coords
  40.     OBJECT_TYPE         m_ObjectType;       // Type of object
  41.     bool                m_bActive;          // Is the object active
  42.     CTerrainEngine::MESH_NODE* m_pMeshNode; // The mesh the object is in
  43.     DWORD               m_dwID;
  44.     C3DAudioPath*       m_pPath;
  45.     CULLSTATE           m_cullstate;
  46.     float               m_fDistToPlayer;
  47. };