movetype.cpp
来自「这是整套横扫千军3D版游戏的源码」· C++ 代码 · 共 72 行
CPP
72 行
#include "StdAfx.h"
#include "MoveType.h"
#include "Map/Ground.h"
#include "Sim/Units/UnitDef.h"
#include "mmgr.h"
CR_BIND_DERIVED(CMoveType, CObject, (NULL));
CR_REG_METADATA(CMoveType, (
CR_MEMBER(forceTurn),
CR_MEMBER(forceTurnTo),
CR_MEMBER(owner),
CR_MEMBER(maxSpeed),
CR_MEMBER(maxWantedSpeed),
CR_MEMBER(useHeading),
CR_ENUM_MEMBER(progressState),
CR_RESERVED(32)
));
CMoveType::CMoveType(CUnit* owner)
: owner(owner),
forceTurn(0),
forceTurnTo(0),
maxSpeed(0.2f),
maxWantedSpeed(0.2f),
useHeading(true),
progressState(Done)
{
}
CMoveType::~CMoveType(void)
{
}
void CMoveType::SetMaxSpeed(float speed)
{
assert(speed > 0);
maxSpeed=speed;
}
void CMoveType::SetWantedMaxSpeed(float speed)
{
if(speed > maxSpeed)
maxWantedSpeed = maxSpeed;
else if(speed < 0.001f)
maxWantedSpeed = 0;
else
maxWantedSpeed = speed;
}
void CMoveType::ImpulseAdded(void)
{
}
void CMoveType::SlowUpdate()
{
owner->pos.y=ground->GetHeight2(owner->pos.x,owner->pos.z);
if(owner->floatOnWater && owner->pos.y<0)
owner->pos.y = -owner->unitDef->waterline;
owner->midPos.y=owner->pos.y+owner->relMidPos.y;
};
void CMoveType::LeaveTransport(void)
{
}
void CMoveType::KeepPointingTo(CUnit* unit, float distance, bool aggressive)
{
KeepPointingTo(float3(unit->pos), distance, aggressive);
};
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?