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


C++ CServerDE::ScaleObject方法代码示例

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


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

示例1: CreateBoundingBox

void Trigger::CreateBoundingBox()
{
	CServerDE* pServerDE = GetServerDE();
	if (!pServerDE) return;

	ObjectCreateStruct theStruct;
	INIT_OBJECTCREATESTRUCT(theStruct);

	DVector vPos;
	pServerDE->GetObjectPos(m_hObject, &vPos);
	VEC_COPY(theStruct.m_Pos, vPos);

	SAFE_STRCPY(theStruct.m_Filename, "Models\\Props\\1x1_square.abc");
	// strcpy(theStruct.m_SkinName, "SpecialFX\\smoke.dtx");
	theStruct.m_Flags = FLAG_VISIBLE;

	HCLASS hClass = pServerDE->GetClass("Model");
	LPBASECLASS pModel = pServerDE->CreateObject(hClass, &theStruct);

	if (pModel)
	{
		m_hBoundingBox = pModel->m_hObject;

		DVector vDims;
		pServerDE->GetObjectDims(m_hObject, &vDims);

		DVector vScale;
		VEC_DIVSCALAR(vScale, vDims, 0.5f);
		pServerDE->ScaleObject(m_hBoundingBox, &vScale);
	}

	pServerDE->SetObjectColor(m_hBoundingBox, GetRandom(0.5f, 1.0f), 
							  GetRandom(0.5f, 1.0f), GetRandom(0.5f, 1.0f), 1.0f);
}
开发者ID:Arc0re,项目名称:lithtech,代码行数:34,代码来源:Trigger.cpp

示例2: CreateShield

void Gabriel::CreateShield()
{
	CServerDE* pServerDE = GetServerDE();
	if (!pServerDE || m_hShield) return;

	ObjectCreateStruct theStruct;
	INIT_OBJECTCREATESTRUCT(theStruct);

	DVector vPos;
	pServerDE->GetObjectPos(m_hObject, &vPos);
	VEC_COPY(theStruct.m_Pos, vPos);

	SAFE_STRCPY(theStruct.m_Filename, "Models\\PV_Weapons\\SpiderExplosionCore.abc");
	SAFE_STRCPY(theStruct.m_SkinName, "SpecialFX\\Explosions\\SpiderCore.dtx");

	theStruct.m_ObjectType  = OT_MODEL;
	theStruct.m_Flags		= FLAG_VISIBLE | FLAG_GOTHRUWORLD;

	HCLASS hClass = pServerDE->GetClass("BaseClass");
	LPBASECLASS pModel = pServerDE->CreateObject(hClass, &theStruct);
	if (!pModel) return;

	m_hShield = pModel->m_hObject;

	DVector vScale;
	VEC_SET(vScale, 150.0f, 300.0f, 150.0f);
	pServerDE->ScaleObject(m_hShield, &vScale);

	pServerDE->SetObjectColor(m_hShield, 1.0f, 0.5f, 0.0f, 0.5f);

	// Attach the sheild model to Gabriel...

	DVector vOffset;
	VEC_INIT(vOffset);

	DRotation rOffset;
	ROT_INIT(rOffset);

	HATTACHMENT hAttachment;
	DRESULT dRes = pServerDE->CreateAttachment(m_hObject, m_hShield, DNULL, 
											   &vOffset, &rOffset, &hAttachment);
	if (dRes != DE_OK)
	{
		pServerDE->RemoveObject(m_hShield);
		m_hShield = DNULL;
	}
}
开发者ID:Arc0re,项目名称:lithtech,代码行数:47,代码来源:Gabriel.cpp

示例3: InitialUpdate

DBOOL CProjectile::InitialUpdate(DVector*)
{
	CServerDE* pServerDE = BaseClass::GetServerDE();
	if (!pServerDE) return DFALSE;

	pServerDE->SetNextUpdate(m_hObject, (DFLOAT)0.001);
	m_fStartTime = pServerDE->GetTime();

	pServerDE->SetObjectDims(m_hObject, &m_vDims);

	pServerDE->SetForceIgnoreLimit(m_hObject, 0.0f);
	pServerDE->SetFrictionCoefficient(m_hObject, 18.0);
	pServerDE->ScaleObject(m_hObject, &m_vInitScale);

	// Initialize damage
	m_damage.Init(m_hObject);
	m_damage.SetHitPoints(5.0f);		// A minor number of  hitpoints
	m_damage.SetApplyDamagePhysics(DFALSE);

	// Mark this object as savable
	DDWORD dwFlags = pServerDE->GetObjectUserFlags(m_hObject);
	dwFlags |= USRFLG_SAVEABLE | USRFLG_SINGULARITY_ATTRACT;
	pServerDE->SetObjectUserFlags(m_hObject, dwFlags);

	// Create a particle trail
	if(m_dwTrailFXID)
	{
		HMESSAGEWRITE hMessage = pServerDE->StartSpecialEffectMessage(this);
		pServerDE->WriteToMessageByte(hMessage, SFX_OBJECTFX_ID);

		pServerDE->WriteToMessageObject(hMessage, m_hObject);
		pServerDE->WriteToMessageVector(hMessage, &m_vTrailOffset);
		pServerDE->WriteToMessageFloat(hMessage, m_fTrailScale);
		pServerDE->WriteToMessageDWord(hMessage, m_dwTrailScaleFlags);
		pServerDE->WriteToMessageDWord(hMessage, m_dwTrailFXID);
		pServerDE->WriteToMessageDWord(hMessage, m_dwTrailFXFlags);

		pServerDE->EndMessage2(hMessage, MESSAGE_GUARANTEED);
	}

	return DTRUE;
}
开发者ID:Arc0re,项目名称:lithtech,代码行数:42,代码来源:Projectile.cpp


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