本文整理汇总了C++中Ptr::CanFindRoot方法的典型用法代码示例。如果您正苦于以下问题:C++ Ptr::CanFindRoot方法的具体用法?C++ Ptr::CanFindRoot怎么用?C++ Ptr::CanFindRoot使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Ptr
的用法示例。
在下文中一共展示了Ptr::CanFindRoot方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TestKillCanFindRoot
void TestKillCanFindRoot(void)
{
ObjectsInit();
Ptr<CRoot> pRoot;
Ptr<CGameWorld> pWorld;
CGameWorld* pcWorld;
pRoot = ORoot();
pWorld = OMalloc(CGameWorld);
pWorld->Init();
pRoot->Add(pWorld);
Ptr<CHarrier> pHarrier = ONMalloc(CHarrier, "Harrier");
pHarrier->Init(pWorld);
Ptr<CJeep> pJeep = ONMalloc(CJeep, "Jeep");
pJeep->Init(pWorld);
pWorld->AddPlayer(pHarrier);
pWorld->AddPlayer(pJeep);
SStateOnKill sHarrierBefore;
SStateOnKill sHarrierAfter;
SStateOnKill sJeepBefore;
SStateOnKill sJeepAfter;
pHarrier->SetKillHook(&sHarrierBefore, &sHarrierAfter);
pJeep->SetKillHook(&sJeepBefore, &sJeepAfter);
SStateOnKill sGooseBefore;
SStateOnKill sGooseAfter;
SStateOnKill sMaverickBefore;
SStateOnKill sMaverickAfter;
Ptr<CRedJet> pRedJetGoose = ONMalloc(CRedJet, "Goose");
Ptr<CRedJet> pRedJetMaverick = ONMalloc(CRedJet, "Maverick");
pRedJetGoose->Init(pWorld);
pRedJetMaverick->Init(pWorld);
pRedJetGoose->SetKillHook(&sGooseBefore, &sGooseAfter);
pRedJetMaverick->SetKillHook(&sMaverickBefore, &sMaverickAfter);
AssertTrue(pJeep->CanFindRoot());
AssertTrue(pRedJetMaverick->CanFindRoot());
AssertTrue(pHarrier->CanFindRoot());
AssertTrue(pHarrier->GetMissiles()->CanFindRoot());
AssertTrue(pRedJetGoose->CanFindRoot());
AssertTrue(pWorld->CanFindRoot());
AssertTrue(pWorld->GetTickables()->CanFindRoot());
AssertTrue(pRoot->CanFindRoot());
AssertTrue(pRoot->TestGetSet()->CanFindRoot());
AssertLongLongInt(9, gcObjects.NumMemoryIndexes());
//
// 4 ArrayObject[6](4)
// 4 ^
// 4 | pRedJetGoose[8,Goose](4)
// 4 | ^/
// | // pRedJetMaverick[9,Maverick](4)
// 3 pHarrier[5,Harrier](3) pJeep[7,Jeep](3) // ^/
// 3 |^ ^ /^ ^ // //
// 3 || \ // | // //
// 3 || // | // //
// 3 || //\ | // //
// 3 || // \ | /. //
// 3 || // ArrayObject[4](3)/
// || // ^ . /
// 2 || // / / /
// 2 v| v/ / v v
// 2 pWorld[3](2)---------------
// ^
// 1 |
// 1 SetObject[2](1)
// ^
// 0 |
// 0 pRoot[1,GraphRoot](0)
//
pRoot->Remove(pWorld);
AssertFalse(pJeep->CanFindRoot());
AssertFalse(pRedJetMaverick->CanFindRoot());
AssertFalse(pHarrier->CanFindRoot());
AssertFalse(pHarrier->GetMissiles()->CanFindRoot()); //The destruction of the pointer created by pHarrier->GetMissiles() set a lot of the root distances to -2.
AssertFalse(pRedJetGoose->CanFindRoot());
AssertFalse(pWorld->CanFindRoot());
AssertFalse(pWorld->GetTickables()->CanFindRoot());
AssertTrue(pRoot->CanFindRoot());
AssertTrue(pRoot->TestGetSet()->CanFindRoot());
AssertInt(-1, pJeep->GetDistToRoot());
AssertInt(-1, pRedJetMaverick->GetDistToRoot());
AssertInt(-1, pHarrier->GetDistToRoot());
AssertInt(-1, pHarrier->GetMissiles()->GetDistToRoot());
AssertInt(-1, pRedJetGoose->GetDistToRoot());
AssertInt(-1, pWorld->GetDistToRoot());
AssertInt(-1, pWorld->GetTickables()->GetDistToRoot());
AssertLongLongInt(9, gcObjects.NumMemoryIndexes());
//.........这里部分代码省略.........