本文整理汇总了C++中Ptr::AddPlayer方法的典型用法代码示例。如果您正苦于以下问题:C++ Ptr::AddPlayer方法的具体用法?C++ Ptr::AddPlayer怎么用?C++ Ptr::AddPlayer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Ptr
的用法示例。
在下文中一共展示了Ptr::AddPlayer方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TestUsageNullPointers
void TestUsageNullPointers(void)
{
ObjectsInit();
Ptr<CGameWorld> pWorld;
CPointer pNull = ONull;
Ptr<CPlayerVehicle> pVehicle = ONull;
Ptr<CHarrier> pHarrier;
pWorld = pNull;
pWorld->AddTickable(pNull);
pWorld->AddTickable(pVehicle);
pWorld->AddTickable(ONull);
pVehicle = pNull;
pWorld->AddPlayer(pVehicle);
pWorld->AddPlayer(pNull);
pWorld->AddPlayer(ONull);
pVehicle = pHarrier;
AssertString("This code must compile", "This code must compile");
pWorld = pHarrier; //This probably shouldn't compile but it does because pHarrier (Ptr<CHarrier>) extends CPointer.
ObjectsKill();
}
示例2: TestEmbeddedObjectAddDistToRoot
void TestEmbeddedObjectAddDistToRoot(void)
{
ObjectsInit();
Ptr<CRoot> pRoot = ORoot();
Ptr<CGameWorld> pWorld = OMalloc(CGameWorld)->Init();
pRoot->Add(pWorld);
Ptr<CClusterMissile> pMissile = ONMalloc(CClusterMissile, "Frank")->Init(pWorld);
Ptr<CHarrier> pHarrier = OMalloc(CHarrier)->Init(pWorld);
pWorld->AddPlayer(pHarrier);
AssertInt(3, pHarrier->GetDistToRoot());
pRoot->Add(pMissile);
AssertInt(2, pMissile->GetDistToRoot());
AssertInt(2, pMissile->mcMissile1.GetDistToRoot());
AssertInt(2, pMissile->mcMissile2.GetDistToRoot());
pMissile->mcMissile1.SetTarget(pHarrier);
AssertInt(3, pHarrier->GetDistToRoot());
ObjectsKill();
}
示例3: 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());
//.........这里部分代码省略.........
示例4: TestKillBestPractice
void TestKillBestPractice(void)
{
ObjectsInit();
//Generally an object will be killed if all pointers to it a removed.
//Sometimes we'd rather not try and remove all the pointers we just want the object to die.
//In the example below if a missile hits a jet then both objects should be removed;
//regardless of whether anything else points to them.
//Those objects that did point to them will be updated to point to NULL.
Ptr<CRoot> pRoot;
Ptr<CGameWorld> pWorld;
pRoot = ORoot();
AssertLongLongInt(0, gcObjects.NumDatabaseNames());
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);
Ptr<CMissile> pMissile1 = pHarrier->FireMissile(pRedJetGoose);
Ptr<CMissile> pMissile2 = pHarrier->FireMissile(pRedJetGoose);
Ptr<CMissile> pMissile3 = pHarrier->FireMissile(pRedJetMaverick);
AssertString("Kill not called", sMaverickBefore.cPicture.mszPretenedImAPicture);
AssertString("Kill not called", sMaverickAfter.cPicture.mszPretenedImAPicture);
AssertLongLongInt(12, gcObjects.NumMemoryIndexes());
AssertLongLongInt(5, gcObjects.NumMemoryNames());
AssertLongLongInt(0, gcObjects.NumDatabaseObjects());
AssertLongLongInt(0, gcObjects.NumDatabaseNames());
AssertInt(2, pWorld.GetDistToRoot());
AssertInt(3, pHarrier.GetDistToRoot());
AssertInt(3, pJeep.GetDistToRoot());
AssertInt(4, pRedJetGoose.GetDistToRoot());
AssertInt(4, pRedJetMaverick.GetDistToRoot());
AssertInt(4, pMissile1.GetDistToRoot());
AssertInt(4, pMissile2.GetDistToRoot());
AssertInt(4, pMissile3.GetDistToRoot());
AssertInt(2, pRedJetMaverick->NumHeapFroms());
AssertInt(3, pHarrier->GetMissiles()->NumElements());
OIndex oiMissile3 = pMissile3->GetOI();
AssertLongLongInt(12LL, oiMissile3);
pMissile3->Kill(); //<-- This is what is being tested.
pMissile3 = gcObjects.TestGetFromMemory(oiMissile3);
AssertTrue(pMissile3.IsNull());
AssertString("Kill not called", sMaverickBefore.cPicture.mszPretenedImAPicture);
AssertString("Kill not called", sMaverickAfter.cPicture.mszPretenedImAPicture);
AssertLongLongInt(11, gcObjects.NumMemoryIndexes());
AssertLongLongInt(5, gcObjects.NumMemoryNames());
AssertLongLongInt(0, gcObjects.NumDatabaseObjects());
AssertLongLongInt(0, gcObjects.NumDatabaseNames());
AssertInt(2, pWorld.GetDistToRoot());
AssertInt(3, pHarrier.GetDistToRoot());
AssertInt(3, pJeep.GetDistToRoot());
AssertInt(4, pRedJetGoose.GetDistToRoot());
AssertInt(4, pRedJetMaverick.GetDistToRoot());
AssertInt(4, pMissile1.GetDistToRoot());
AssertInt(4, pMissile2.GetDistToRoot());
AssertInt(1, pRedJetMaverick->NumHeapFroms());
AssertInt(2, pHarrier->GetMissiles()->NumElements());
AssertString("Kill not called", sGooseBefore.cPicture.mszPretenedImAPicture);
AssertString("Kill not called", sGooseAfter.cPicture.mszPretenedImAPicture);
pRedJetGoose->Kill();
//.........这里部分代码省略.........