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

📄 aniobject.cpp

📁 国外网游源码....除工具源码缺少之外,其余程序都全...至于,什么游戏,因为国内还没有,所以找不到测试
💻 CPP
字号:
// AniObject.cpp: implementation of the CAniObject class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "AniObject.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CAniObject::CAniObject()
{
	m_nStartFrame	= 0;
	m_nEndFrame		= 0;
	m_nCurFrame		= 0;
	m_nNextFrame	= 0;
	m_dwAccTime		= 0;
	m_nLooping		= 0;
	m_dwLastTime	= timeGetTime();
}

CAniObject::~CAniObject()
{

}

void CAniObject::Render()
{
	UpdateAnimation(0);
	
	m_quateResult = m_quateRotate;

//	m_vLook = D3DXVECTOR3(0,0,1);
//	m_vUp	= D3DXVECTOR3(0,1,0);
//	m_vRight= D3DXVECTOR3(1,0,0);
//	CUtility::QuaternionRotateVector(m_quateResult,&m_vLook);
//	CUtility::QuaternionRotateVector(m_quateResult,&m_vRight);
//	CUtility::QuaternionRotateVector(m_quateResult,&m_vUp);
	
//	else
//		g_pApp->GetD3dDevice()->SetRenderState(D3DRS_FILLMODE,D3DFILL_SOLID);

	//if( m_bShow && m_bActive )

	D3DXMATRIX matRotate;
	D3DXMatrixRotationQuaternion(&matRotate,&m_quateResult);	// 概飘腐胶肺
	//m_matWorld = m_matScale * m_matTrans;
	m_matWorld = m_matScale * matRotate * m_matTrans;
	g_pApp->GetD3dDevice()->SetTransform(D3DTS_WORLD,&m_matWorld);
	m_pObject->Render(m_nCurFrame);
//	g_pApp->GetD3dDevice()->SetRenderState(D3DRS_FILLMODE,D3DFILL_WIREFRAME);
//	m_pObject->BoundingBoxRender(0,m_matWorld);
//	g_pApp->GetD3dDevice()->SetRenderState(D3DRS_FILLMODE,D3DFILL_SOLID);

//	for(int i=0; i<m_listObject.size(); i++)
//	{
//		CMCObject * pObject = m_listObject[i];
//		pObject->Render(0);
//	}
}

//=========================================================================//
//	Animation Function
//=========================================================================//
BOOL CAniObject::SetAnimation(UINT nType, int nLooping)
{	
	m_nStartFrame	= 0;
	m_nEndFrame		= m_pObject->GetFrameCount();
	m_nCurFrame		= m_nStartFrame;
	m_nNextFrame	= m_nStartFrame;
	m_dwAccTime		= 0;
	m_nLooping		= nLooping;

	// 1檬甫 FPS肺 唱穿搁, 1橇饭烙阑 逞扁绰 矫埃捞 备秦柳促.
	// FPS啊 20捞绊, 醚橇饭烙捞 30钠捞扼绊 且锭 1檬俊 20厘阑 嘛绢具 等促.
	// 弊贰辑 1阑 20栏肺 唱穿搁 1钠捞 逞绢哎锭 鞘夸茄 矫埃捞 唱坷霸 等促.
	// 捞 矫埃俊 *1000阑 秦辑 剐府技牧靛肺 官槽促.
	m_dwMSPF		= DWORD( (float(1.0f/15.0) )*1000 );		// 碍力利栏风 傲 矫埃 棱疽朵..

	m_dwLastTime	= timeGetTime();

	return TRUE;
}

void CAniObject::UpdateAnimation(DWORD dwElapsed)
{
	m_dwCurTime = timeGetTime();
	
	m_dwElapsed = m_dwCurTime - m_dwLastTime;
	m_dwLastTime = m_dwCurTime;

	dwElapsed = m_dwElapsed;
	m_dwMSPF =100;

	// nLooping啊 0牢瘤何磐 八荤甫 茄促.
	if(m_nLooping == 0) 
		m_nNextFrame = m_nEndFrame;

	if(m_dwMSPF)	// FPS啊 乐栏搁
	{
		m_dwAccTime += dwElapsed; // 矫埃 绵利

		if( m_dwAccTime >= m_dwMSPF ) // FPS客 鞍芭唱 腹捞 绵利登菌栏搁
		{
			m_nCurFrame = m_nNextFrame;	// 泅犁橇饭烙捞 促澜橇饭烙阑 罐绊
			m_nNextFrame++;
			
			// 风橇, 唱吝俊 风橇函荐甫 荤侩且锭 咯扁辑 / 泅犁绰 公茄风橇
			if(m_nNextFrame > m_nEndFrame-1)
				m_nNextFrame = m_nStartFrame; // 公茄风橇 
			m_dwAccTime = 0;
		}
		m_finterPolation = (float) m_dwAccTime / (float) m_dwMSPF;
	}
}

⌨️ 快捷键说明

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