示例#1
0
bool ZActor::ProcessMotion(float fDelta)
{
	if (!m_pVMesh) return false;

	m_pVMesh->Frame();

	rvector pos = m_Position;
	rvector dir = m_Direction;
	dir.z = 0;

	rmatrix world;
	MakeWorldMatrix(&world,rvector(0,0,0), dir,rvector(0,0,1));

	rvector MeshPosition ;
	MeshPosition = pos;

	MakeWorldMatrix(&world,pos,dir,rvector(0,0,1));
	m_pVMesh->SetWorldMatrix(world);

	UpdatePosition(fDelta);

	if(IsActiveModule(ZMID_LIGHTNINGDAMAGE)==false) {

		if (m_pVMesh->isOncePlayDone())
		{
			m_Animation.Input(ZA_ANIM_DONE);
		}
	}

	return true;
}
示例#2
0
void ZModuleContainer::ActiveModule(int nID, bool bActive)	// 특정 모듈을 (비)활성화 시킨다
{
	// 활성화 시킨다
	if(bActive) {
		if(IsActiveModule(nID)) return;	// 이미 활성화 되어있다

		ZMODULEMAP::iterator i = m_Modules.find(nID);
		if(i!= m_Modules.end()) {
			i->second->OnActivate();
			m_ActiveModules.insert(ZMODULEMAP::value_type(nID,i->second));
		}
	}else{
	// 비활성화 시킨다
		ZMODULEMAP::iterator i = m_ActiveModules.find(nID);
		if(i==m_ActiveModules.end()) return; // 이미 비활성화 되어있다
		i->second->OnDeactivate();
		m_ActiveModules.erase(i);
	}
}