game.h

来自「DirectInput的基本实现 只是基本应用」· C头文件 代码 · 共 58 行

H
58
字号
#pragma once

#include "StaticMesh.h"

class CGame
{
	LPDIRECT3D9					m_pD3D;
	LPDIRECT3DDEVICE9			m_pDevice;
	D3DPRESENT_PARAMETERS		m_d3dpp;
	LPD3DXFONT					m_pFont;

	bool						m_bDeviceLost;

	struct Ray
	{
		D3DXVECTOR3 _origin;		//射线起点
		D3DXVECTOR3 _dirction;		//射线方向
	};

	struct BoundSphere
	{
		D3DXVECTOR3 _center;
		float		radius;
	};

	bool						m_bRotate[2];
	float						m_fAngle[2];
	CStaticMesh					*m_pBall[2];
	BoundSphere					m_boundSphere[2];

	/** 初始化D3D设备
	*/
	HRESULT _InitD3D(HWND hWnd);



public:
	CGame(void);
	~CGame(void);

	bool Init( HINSTANCE hInstance, HWND hWnd );

	void Update(float fElapsedTime);
	void Render(float fElapsedTime);

	void InvalidateDeviceObjects(void);
	void RestoreDeviceObjects(void);

	void HandleMessage(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);

	// 计算拾取射线
	Ray CalculateRay(int x, int y);
	// 转换射线
	Ray TransformRay(Ray ray, D3DXMATRIX* T);
	// 计算与球的相交
	BOOL CheckIntersection(Ray* ray, BoundSphere* sphere);
};

⌨️ 快捷键说明

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