📄 game.h
字号:
#if !defined(AFX_GAME_H__687221F3_ACFF_4D66_97DB_88AB70E0CA59__INCLUDED_)
#define AFX_GAME_H__687221F3_ACFF_4D66_97DB_88AB70E0CA59__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "Base.h"
#include "Font.h"
#include "Sphere.h"
#include "Table.h"
#include "Cue.h"
#include "Audio.h"
/*
#define PEDOMETER 10
//DIRECTION_SEGMENTS= 360 / PEDOMETER
#define DIRECTION_SEGMENTS
*/
class CGame:public CBase
{
public:
BOOL Initialize(HWND hwnd,UINT nWidth,UINT nHeight,HINSTANCE hInstance);
void GameLoop();
LPDIRECT3DDEVICE8 GetDevice();
CGame();
virtual ~CGame();
private:
BOOL InitializeD3D(HWND hwnd,UINT nWidth,UINT nHeight);
BOOL InitializeLights();
BOOL InitializeGame();
BOOL InitializeDirectInput(HWND hwnd,HINSTANCE hInstance);
BOOL InitializeDirectAudio(HWND hwnd);
void CleanUpDirectInput();
void CleanUpDirect3D();
void CleanUpGame();
void CleanUpDirectAudio();
void ProcessMouse();
void ProcessKeyboard();
void InitilizeSpheresPosition();
D3DFORMAT CheckDisplayMode(UINT nWidth,UINT nHight,UINT nDepth);
void Render3D();
void Render();
void Setup3DCamera();
void RenderText();
LPDIRECT3D8 m_pD3D;
LPDIRECT3DDEVICE8 m_pD3DDevice;
LPDIRECTINPUT8 m_pDirectInput;
LPDIRECTINPUTDEVICE8 m_pKeyboard;
LPDIRECTINPUTDEVICE8 m_pMouse;
IDirectMusicPerformance8* m_pDirectAudioPerformance;
IDirectMusicLoader8 *m_pDirectAudioLoader;
DWORD m_dwFrames;
DWORD m_dwFPS;
DWORD m_dwPedotime;
DWORD m_dwCountFrames;
DWORD m_dwStartTime;
DWORD m_dwEndTime;
DWORD m_dwNewTime;
DWORD m_dwOldTime;
DWORD m_dwTotalPolygons;
int m_iScreenWidth;
int m_iScreenHeight;
int m_iMouseX;
int m_iMouseY;
bool m_bQuit;
//****************For Sound****************
//*****************************************
CAudio *m_pSoundHitCue0;
CAudio *m_pSoundHitCue1;
CAudio *m_pSoundHitBar;
CAudio *m_pSoundBimpacting0;
CAudio *m_pSoundBimpacting1;
CAudio *m_pSoundFallInHole;
bool m_bSoundCardState;
//*****************************************
//*****************************************
//*****************************************
//***************For Camera****************
D3DXVECTOR3 m_vecCameraPosition;
D3DXVECTOR3 m_vecSavedCameraPosition;
D3DXVECTOR3 m_vecSavedLookAtPosition;
int m_iMouseStateX,m_iMouseStateY;
//*****************************************
//*****************************************
float m_fSysEnergy;
D3DXVECTOR3 m_vecCuePosition;
D3DXVECTOR3 m_vecCueDir;
bool m_bCtrl;
int m_iMoveCue;
float m_fScale;
float m_fScaleTemp;
bool m_bSendBall;
int m_iMouseRight;
float m_fCueVelocity;
bool m_bPlanform;
CFont *m_pFont;
CSphere *m_pSphere[SUMBALL];
CTable *m_pTableMesh;
CCue *m_pCue;
//All for collision between TableBar and Sphere.
//***************************************************
LPD3DXMESH m_pMesh;
D3DXVECTOR3 m_vecRayPos;
D3DXVECTOR3 m_vecRayPos2;
D3DXVECTOR3 m_vecRayDir[9];
//BOOL <> bool !!! bool is an integral type. BOOL should be TRUE or FALSE.
BOOL m_bHitBar;
float m_fDistance;
void SphereHitBarProcess(int NumOfSphere);
void SphereHitSphereProcess(int NumOfSphere);
void SphereFallInHoleProcess(int NumOfSphere);
void CollisionResponseBetweenSphere(int i,int j);
BOOL CheckWhiteBallInAvailableArea();
//***************************************************
};
#endif // !defined(AFX_GAME_H__687221F3_ACFF_4D66_97DB_88AB70E0CA59__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -