当前位置: 首页>>代码示例>>C++>>正文


C++ CMonster::Update方法代码示例

本文整理汇总了C++中CMonster::Update方法的典型用法代码示例。如果您正苦于以下问题:C++ CMonster::Update方法的具体用法?C++ CMonster::Update怎么用?C++ CMonster::Update使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CMonster的用法示例。


在下文中一共展示了CMonster::Update方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: _tmain

int _tmain(int argc, _TCHAR* argv[])
{
	// 注册错误回调函数
	FKAISystem::RegisterErrorMsgReceiver( OutPut );
	// 初始化状态机表
	FKAISystem::SetStateFilesDirectory( "Bin/Data/AIScript" );


	CMonster* pMonster = new CMonster();
	pMonster->Init("状态机表名称");
	for( ;; )
	{
		// 获取帧间隔时间
		static float lastTime = 0;
		lastTime = g_fAccumTime;
		g_fAccumTime = (float)timeGetTime() / 1000.0f;
		g_fTimeFromLastFrame = g_fAccumTime - lastTime;

		//最低帧数控制
		if (g_fTimeFromLastFrame>0.2f)
			g_fTimeFromLastFrame = 0.2f;

		// 每帧间隔CPU休眠时间
		if(g_dwSleepTime > 0) Sleep(g_dwSleepTime);

		pMonster->Update( g_fTimeFromLastFrame );
	}
	pMonster->Destory();
	return 0;
}
开发者ID:duzhi5368,项目名称:FKAISystem,代码行数:30,代码来源:TestFKAISystem.cpp

示例2: Render

void CGameProc::Render(float fElapsedTime)
{
	int nCnt;
	if(m_pD3DDevice == NULL)
    {
		return;
    }
	
	g_pPlayer->Update(fElapsedTime);

	m_xSkillWnd.Update(fElapsedTime);

	m_xMonsterList.MoveCurrentToTop();
	for (nCnt=0;nCnt<m_xMonsterList.GetCounter();nCnt++)
	{
		CMonster *pMonster;
		pMonster=m_xMonsterList.GetCurrentData();
		pMonster->Update(fElapsedTime);
		m_xMonsterList.MoveNextNode();
	}

	m_pWater->Update(fElapsedTime);

 	if (g_pPlayer->m_pTargetInfo)
 		m_pRoleInfo->Update(&g_pPlayer->m_xPlayInfo,g_pPlayer->m_pTargetInfo,true);
 	else
    	m_pRoleInfo->Update(&g_pPlayer->m_xPlayInfo,g_pPlayer->m_pTargetInfo,false);
	
	//Clear the back buffer and depth buffer
    m_pD3DDevice->Clear(0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, NULL, 1.0f, 0);
    m_pD3DDevice->BeginScene();

	g_pCamera->Setup3DCamera();
	
	g_pPlayer->Render();

	float i;
	m_xMonsterList.MoveCurrentToTop();
	for (nCnt=0;nCnt<m_xMonsterList.GetCounter();nCnt++)
	{
		CMonster *pMonster;
		pMonster=m_xMonsterList.GetCurrentData();
		if (nCnt==2)
		{
			pMonster->m_pMonsterMesh->SetPosition(D3DXVECTOR3(pMonster->m_xMonsterInfo.x,m_pTerrain->getHeight(pMonster->m_xMonsterInfo.x,pMonster->m_xMonsterInfo.z),pMonster->m_xMonsterInfo.z));
			i=pMonster->m_fAngel;
		}
		pMonster->Render();
		m_xMonsterList.MoveNextNode();
	}
	
	D3DXVECTOR3 playerPos;
	g_pPlayer->GetPos(&playerPos);
	m_pSkyBox->Render(playerPos);
	
	D3DXMATRIX matViewProj;
    g_pCamera->GetViewProj(&matViewProj);
  m_pTerrain->Render(&matViewProj,false);	 
	
	// 绘制透明物体
    m_pWater->Render();

	g_pCamera->Setup2DCamera();

	g_pChatPopWnd->Render();
	m_xSkillWnd.Render();
	m_pRoleInfo->Render();

	

	char buf[255];
	if (g_pPlayer->m_pPlayerMesh->m_bHightlight)
	{
       g_pFont->DrawText("打开深度光照",0,0,D3DCOLOR_XRGB(255,255,0));
	}
	D3DXVECTOR3 vPos;
	g_pCamera->GetCameraPos(&vPos);



	sprintf(buf,"坐标%f %f %f\n 摄像机位置 %f %f %f	\n 鼠标坐标%d,%d \n%d %d\n%f",playerPos.x,playerPos.z,fElapsedTime,vPos.x,vPos.y,vPos.z,m_pt.x,m_pt.y
	,g_pChatPopWnd->m_nTaskState,g_pChatPopWnd->m_nPageIndex,i/D3DX_PI);
   g_pFont->DrawText(buf,0,512,D3DCOLOR_XRGB(0,0,0));

   if (g_szBuf!=NULL&&m_xSkillWnd.m_xLock.bLock)
   {
	      g_pFont->DrawText(g_szBuf,456,150,D3DCOLOR_XRGB(0,0,0));
   }

    m_pD3DDevice->EndScene();
    //Filp the back and front buffers so that whatever has been rendered on the back buffer
    //will now be visible on screen (front buffer).
    m_pD3DDevice->Present(NULL, NULL, NULL, NULL);
}
开发者ID:wang35666,项目名称:3dgame,代码行数:94,代码来源:GameProc.cpp


注:本文中的CMonster::Update方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。