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

📄 game.cpp

📁 C++台球游戏代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
	return TRUE;
}

BOOL CGame::InitializeLights()
{
	LogInfo("<br>Initialize Lights:");
	D3DLIGHT8 d3dLight;

	//Initialize the light structure.
	ZeroMemory(&d3dLight,sizeof(D3DLIGHT8));

	d3dLight.Type=D3DLIGHT_SPOT;
	d3dLight.Position.x=0.0f;
	d3dLight.Position.y=50.0f;
	d3dLight.Position.z=0.0f;

	d3dLight.Direction.x=0.0f;
    d3dLight.Direction.y=-1.0f;
	d3dLight.Direction.z=0.0f;

	d3dLight.Attenuation0=1.0f;
	d3dLight.Attenuation1=0.0f;
	d3dLight.Attenuation2=0.0f;
	d3dLight.Range=100.0f;

	d3dLight.Diffuse.r=1.0f;
	d3dLight.Diffuse.g=1.0f;
	d3dLight.Diffuse.b=1.0f;
	
	d3dLight.Ambient.r=0.1f;
	d3dLight.Ambient.g=0.1f;
	d3dLight.Ambient.b=0.1f;

	d3dLight.Specular.r=1.0f;
	d3dLight.Specular.g=1.0f;
	d3dLight.Specular.b=1.0f;

	d3dLight.Theta=D3DX_PI/2.5f;
	d3dLight.Phi=D3DX_PI/1.5f;
	d3dLight.Falloff=2.0f;
	//Assign the point light to device in position 
	if(FAILED(m_pD3DDevice->SetLight(0,&d3dLight)))
	{
		LogError("<li>SetLight Failed");
		return FALSE;
	}
	else
	{
		LogInfo("<li>SetLight OK");
	}

	//Enable point light in position
	if(FAILED(m_pD3DDevice->LightEnable(0,TRUE)))
	{
		LogError("<li>LightEnable Failed");
		return FALSE;
	}
	else
	{
		LogInfo("<li>Light Enable OK");
	}

	//Turn on lighting
	if(FAILED(m_pD3DDevice->SetRenderState(D3DRS_LIGHTING,TRUE)))
	{
		LogError("<li>SetRenderState: D3DRS_LIGHTING Failed");
		return FALSE;
	}
	else
	{
		LogInfo("<li>SetRenderState: D3DRS_LIGHTING OK");
	}

	//Set ambient light level
	if(FAILED(m_pD3DDevice->SetRenderState(D3DRS_AMBIENT,D3DCOLOR_XRGB(50,50,50))))
	{
		LogError("<li>SetRenderState: D3DRS_AMBIENT Failed");
		return FALSE;
	}
	else
	{
		LogInfo("<li>SetRenderState: D3DRS_AMBIENT OK");
	}

	if(FAILED(m_pD3DDevice->SetRenderState(D3DRS_SPECULARENABLE,TRUE)))
	{
		LogError("<li>SetRenderState: D3DRS_SPECULARENABLE Failed");
		return FALSE;
	}
	else
	{
		LogInfo("<li>SetRenderState: D3DRS_SPECULARENABLE OK");
	}
//	//haoxf
	//	//add four light
	//	D3DLIGHT8 d3dLightA;
	//	
	//	//Initialize the second light structure.
	//	ZeroMemory(&d3dLightA,sizeof(D3DLIGHT8));
	//	
	//	d3dLightA.Type=D3DLIGHT_SPOT;
	//	d3dLightA.Position.x=20.0f;
	//	d3dLightA.Position.y=25.0f;
	//	d3dLightA.Position.z=-10.0f;
	//	
	//	d3dLightA.Direction.x=-1.0f;
	//    d3dLightA.Direction.y=-1.0f;
	//	d3dLightA.Direction.z=1.0f;
	//	
	//	d3dLightA.Attenuation0=1.0f;
	//	d3dLightA.Attenuation1=0.0f;
	//	d3dLightA.Attenuation2=0.0f;
	//	d3dLightA.Range=100.0f;
	//	
	//	d3dLightA.Diffuse.r=1.0f;
	//	d3dLightA.Diffuse.g=1.0f;
	//	d3dLightA.Diffuse.b=1.0f;
	//	
	//	d3dLightA.Ambient.r=0.0f;
	//	d3dLightA.Ambient.g=0.0f;
	//	d3dLightA.Ambient.b=0.0f;
	//	
	//	d3dLightA.Specular.r=1.0f;
	//	d3dLightA.Specular.g=1.0f;
	//	d3dLightA.Specular.b=1.0f;
	//	
	//	d3dLightA.Theta=D3DX_PI/2.5f;
	//	d3dLightA.Phi=D3DX_PI/1.5f;
	//	d3dLightA.Falloff=2.0f;
	//	//Assign the point light to device in position 
	//	if(FAILED(m_pD3DDevice->SetLight(0,&d3dLightA)))
	//	{
	//		LogError("<li>SetLightA Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>SetLightA OK");
	//	}
	//	
	//	//Enable point light in position
	//	if(FAILED(m_pD3DDevice->LightEnable(0,TRUE)))
	//	{
	//		LogError("<li>LightEnableA Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>LightA Enable OK");
	//	}
	//	
	//	//Turn on lighting
	//	if(FAILED(m_pD3DDevice->SetRenderState(D3DRS_LIGHTING,TRUE)))
	//	{
	//		LogError("<li>SetRenderState: D3DRS_LIGHTING(A) Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>SetRenderState: D3DRS_LIGHTING(A) OK");
	//	}
	//	
	//	//Set ambient light level
	//	if(FAILED(m_pD3DDevice->SetRenderState(D3DRS_AMBIENT,D3DCOLOR_XRGB(50,50,50))))
	//	{
	//		LogError("<li>SetRenderState: D3DRS_AMBIENT(A) Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>SetRenderState: D3DRS_AMBIENT(A) OK");
	//	}
	//	
	//	if(FAILED(m_pD3DDevice->SetRenderState(D3DRS_SPECULARENABLE,TRUE)))
	//	{
	//		LogError("<li>SetRenderState: D3DRS_SPECULARENABLE(A) Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>SetRenderState: D3DRS_SPECULARENABLE(A) OK");
	//	}
	//	//the second light
	//	D3DLIGHT8 d3dLightB;
	//	
	//	//Initialize the third light structure.
	//	ZeroMemory(&d3dLightB,sizeof(D3DLIGHT8));
	//	
	//	d3dLightB.Type=D3DLIGHT_SPOT;
	//	d3dLightB.Position.x=20.0f;
	//	d3dLightB.Position.y=25.0f;
	//	d3dLightB.Position.z=10.0f;
	//	
	//	d3dLightB.Direction.x=-1.0f;
	//    d3dLightB.Direction.y=-1.0f;
	//	d3dLightB.Direction.z=-1.0f;
	//	
	//	d3dLightB.Attenuation0=1.0f;
	//	d3dLightB.Attenuation1=0.0f;
	//	d3dLightB.Attenuation2=0.0f;
	//	d3dLightB.Range=100.0f;
	//	
	//	d3dLightB.Diffuse.r=1.0f;
	//	d3dLightB.Diffuse.g=1.0f;
	//	d3dLightB.Diffuse.b=1.0f;
	//	
	//	d3dLightB.Ambient.r=0.0f;
	//	d3dLightB.Ambient.g=0.0f;
	//	d3dLightB.Ambient.b=0.0f;
	//	
	//	d3dLightB.Specular.r=1.0f;
	//	d3dLightB.Specular.g=1.0f;
	//	d3dLightB.Specular.b=1.0f;
	//	
	//	d3dLightB.Theta=D3DX_PI/2.5f;
	//	d3dLightB.Phi=D3DX_PI/1.5f;
	//	d3dLightB.Falloff=2.0f;
	//	//Assign the point light to device in position 
	//	if(FAILED(m_pD3DDevice->SetLight(0,&d3dLightB)))
	//	{
	//		LogError("<li>SetLightB Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>SetLightB OK");
	//	}
	//	
	//	//Enable point light in position
	//	if(FAILED(m_pD3DDevice->LightEnable(0,TRUE)))
	//	{
	//		LogError("<li>LightEnableB Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>Light EnableB OK");
	//	}
	//	
	//	//Turn on lighting
	//	if(FAILED(m_pD3DDevice->SetRenderState(D3DRS_LIGHTING,TRUE)))
	//	{
	//		LogError("<li>SetRenderState: D3DRS_LIGHTING(B) Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>SetRenderState: D3DRS_LIGHTING(B) OK");
	//	}
	//	
	//	//Set ambient light level
	//	if(FAILED(m_pD3DDevice->SetRenderState(D3DRS_AMBIENT,D3DCOLOR_XRGB(50,50,50))))
	//	{
	//		LogError("<li>SetRenderState: D3DRS_AMBIENT(B) Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>SetRenderState: D3DRS_AMBIENT(B) OK");
	//	}
	//	
	//	if(FAILED(m_pD3DDevice->SetRenderState(D3DRS_SPECULARENABLE,TRUE)))
	//	{
	//		LogError("<li>SetRenderState: D3DRS_SPECULARENABLE(B) Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>SetRenderState: D3DRS_SPECULARENABLE(B) OK");
	//	}
	//
	//	//the third light
	//	D3DLIGHT8 d3dLightC;
	//	
	//	//Initialize the light structure.
	//	ZeroMemory(&d3dLightC,sizeof(D3DLIGHT8));
	//	
	//	d3dLightC.Type=D3DLIGHT_SPOT;
	//	d3dLightC.Position.x=-20.0f;
	//	d3dLightC.Position.y=25.0f;
	//	d3dLightC.Position.z=-10.0f;
	//	
	//	d3dLightC.Direction.x=1.0f;
	//    d3dLightC.Direction.y=-1.0f;
	//	d3dLightC.Direction.z=1.0f;
	//	
	//	d3dLightC.Attenuation0=1.0f;
	//	d3dLightC.Attenuation1=0.0f;
	//	d3dLightC.Attenuation2=0.0f;
	//	d3dLightC.Range=100.0f;
	//	
	//	d3dLightC.Diffuse.r=1.0f;
	//	d3dLightC.Diffuse.g=1.0f;
	//	d3dLightC.Diffuse.b=1.0f;
	//	
	//	d3dLightC.Ambient.r=0.0f;
	//	d3dLightC.Ambient.g=0.0f;
	//	d3dLightC.Ambient.b=0.0f;
	//	
	//	d3dLightC.Specular.r=1.0f;
	//	d3dLightC.Specular.g=1.0f;
	//	d3dLightC.Specular.b=1.0f;
	//	
	//	d3dLightC.Theta=D3DX_PI/2.5f;
	//	d3dLightC.Phi=D3DX_PI/1.5f;
	//	d3dLightC.Falloff=2.0f;
	//	//Assign the point light to device in position 
	//	if(FAILED(m_pD3DDevice->SetLight(0,&d3dLightC)))
	//	{
	//		LogError("<li>SetLightC Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>SetLightC OK");
	//	}
	//	
	//	//Enable point light in position
	//	if(FAILED(m_pD3DDevice->LightEnable(0,TRUE)))
	//	{
	//		LogError("<li>LightEnableC Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>Light EnableC OK");
	//	}
	//	
	//	//Turn on lighting
	//	if(FAILED(m_pD3DDevice->SetRenderState(D3DRS_LIGHTING,TRUE)))
	//	{
	//		LogError("<li>SetRenderState: D3DRS_LIGHTING(C) Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>SetRenderState: D3DRS_LIGHTING(C) OK");
	//	}
	//	
	//	//Set ambient light level
	//	if(FAILED(m_pD3DDevice->SetRenderState(D3DRS_AMBIENT,D3DCOLOR_XRGB(50,50,50))))
	//	{
	//		LogError("<li>SetRenderState: D3DRS_AMBIENT(C) Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>SetRenderState: D3DRS_AMBIENT(C) OK");
	//	}
	//	
	//	if(FAILED(m_pD3DDevice->SetRenderState(D3DRS_SPECULARENABLE,TRUE)))
	//	{
	//		LogError("<li>SetRenderState: D3DRS_SPECULARENABLE(C) Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>SetRenderState: D3DRS_SPECULARENABLE(C) OK");
	//	}
	//
	//	//the fourth light
	//	D3DLIGHT8 d3dLightD;
	//	
	//	//Initialize the light structure.
	//	ZeroMemory(&d3dLightD,sizeof(D3DLIGHT8));
	//	
	//	d3dLightD.Type=D3DLIGHT_SPOT;
	//	d3dLightD.Position.x=-20.0f;
	//	d3dLightD.Position.y=25.0f;
	//	d3dLightD.Position.z=10.0f;
	//	
	//	d3dLightD.Direction.x=1.0f;
	//    d3dLightD.Direction.y=-1.0f;
	//	d3dLightD.Direction.z=-1.0f;
	//	
	//	d3dLightD.Attenuation0=1.0f;
	//	d3dLightD.Attenuation1=0.0f;
	//	d3dLightD.Attenuation2=0.0f;
	//	d3dLightD.Range=100.0f;
	//	
	//	d3dLightD.Diffuse.r=1.0f;
	//	d3dLightD.Diffuse.g=1.0f;
	//	d3dLightD.Diffuse.b=1.0f;
	//	
	//	d3dLightD.Ambient.r=0.0f;
	//	d3dLightD.Ambient.g=0.0f;
	//	d3dLightD.Ambient.b=0.0f;
	//	
	//	d3dLightD.Specular.r=1.0f;
	//	d3dLightD.Specular.g=1.0f;
	//	d3dLightD.Specular.b=1.0f;
	//	
	//	d3dLightD.Theta=D3DX_PI/2.5f;
	//	d3dLightD.Phi=D3DX_PI/1.5f;
	//	d3dLightD.Falloff=2.0f;
	//	//Assign the point light to device in position 
	//	if(FAILED(m_pD3DDevice->SetLight(0,&d3dLightD)))
	//	{
	//		LogError("<li>SetLight(D) Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>SetLight(D) OK");
	//	}
	//	
	//	//Enable point light in position
	//	if(FAILED(m_pD3DDevice->LightEnable(0,TRUE)))
	//	{
	//		LogError("<li>LightEnable(D) Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>Light Enable(D) OK");
	//	}
	//	
	//	//Turn on lighting
	//	if(FAILED(m_pD3DDevice->SetRenderState(D3DRS_LIGHTING,TRUE)))
	//	{
	//		LogError("<li>SetRenderState: D3DRS_LIGHTING(D) Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>SetRenderState: D3DRS_LIGHTING(D) OK");
	//	}
	//	
	//	//Set ambient light level
	//	if(FAILED(m_pD3DDevice->SetRenderState(D3DRS_AMBIENT,D3DCOLOR_XRGB(50,50,50))))
	//	{
	//		LogError("<li>SetRenderState: D3DRS_AMBIENT(D) Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>SetRenderState: D3DRS_AMBIENT(D) OK");
	//	}
	//	
	//	if(FAILED(m_pD3DDevice->SetRenderState(D3DRS_SPECULARENABLE,TRUE)))
	//	{
	//		LogError("<li>SetRenderState: D3DRS_SPECULARENABLE(D) Failed");
	//		return FALSE;
	//	}
	//	else
	//	{
	//		LogInfo("<li>SetRenderState: D3DRS_SPECULARENABLE(D) OK");
	//	}
	//	//haoxf end

⌨️ 快捷键说明

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