本文整理汇总了C++中object::SetCommand方法的典型用法代码示例。如果您正苦于以下问题:C++ object::SetCommand方法的具体用法?C++ object::SetCommand怎么用?C++ object::SetCommand使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类object
的用法示例。
在下文中一共展示了object::SetCommand方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FxAttack_PanicTimer
func FxAttack_PanicTimer(object c, proplist fx, int time)
{
// Run around in random directions
var x = c->GetX();
if (x < 400)
x += 200;
else if (x > 600)
x -= 200;
else
x += Random(2)*400 - 200;
c->SetCommand("MoveTo", nil, x, 300);
return FX_OK;
}
示例2: FxPyritHammeringTimer
func FxPyritHammeringTimer(object c, proplist fx, int time)
{
if (FrameCounter() < this.anim_continue_frame || c.has_sequence) return FX_OK;
this.anim = 0;
if (!fx.catapult) if (!(fx.catapult = FindObject(Find_ID(Catapult), Sort_Distance()))) return FX_OK;
if ((!Random(20) && GetPlayerCount()) || this.was_walk_interrupted)
{
// Move between two places (only if players are joined so Pyrit stays in place for object saving)
var new_pos = [fx.catapult->GetX()-24, fx.catapult->GetX()+26][c->GetX() < fx.catapult->GetX()];
c->SetCommand("MoveTo", nil, new_pos, fx.catapult->GetY());
this.anim_continue_frame = FrameCounter() + 50;
this.was_walk_interrupted = false;
}
示例3: FxLaraWalkingTimer
func FxLaraWalkingTimer(object c, proplist fx, int time)
{
var speed_factor = 50;
// Interrupted by dialogue?
if (FrameCounter() < this.anim_continue_frame) return FX_OK;
// No player joined? Stay in place for proper scenario saving.
if (!GetPlayerCount()) return FX_OK;
// Busy lifting/dropping?
if (GetEffect("IntLiftHeavy", c)) return FX_OK;
if (GetEffect("IntDropHeavy", c)) return FX_OK;
// Do we have something to carry?
if (!fx.carry_obj)
{
// Relax for a random time...
if (!Random(10))
// ...and search new work after
fx.carry_obj = fx.last_barrel = Lara_FindCarryObj(c, fx);
}
if (fx.carry_obj)
{
// need to pick it up?
if (fx.carry_obj->Contained() != c)
{
// need to walk there?
var dist = Abs(fx.carry_obj->GetX() - c->GetX());
if (dist < 10)
{
// pick up!
c->SetCommand("None");
c->SetComDir(COMD_Stop);
// short break - then pick up.
if (c->GetXDir()) return FX_OK;
c->SetXDir();
fx.carry_obj->Enter(c);
// find a target
fx.target_pos = [[220+Random(11), 311], [495+Random(51),358]][fx.carry_obj->GetX() < 350];
}
else
{
// we're close. slow down.
if (dist < 40) speed_factor = 30;