本文整理汇总了C++中TActorIterator::allItemsFound方法的典型用法代码示例。如果您正苦于以下问题:C++ TActorIterator::allItemsFound方法的具体用法?C++ TActorIterator::allItemsFound怎么用?C++ TActorIterator::allItemsFound使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TActorIterator
的用法示例。
在下文中一共展示了TActorIterator::allItemsFound方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: onHit
void AAvatar::onHit(AActor *Self, AActor *neighbor, FVector NormalImpulse, const FHitResult &Hit)
{
int row, col;
FVector *AllTheItems;
FVector2D MazeDimensions;
// If the hero touched an item, drop it into his inventory and set it to found
if(neighbor && (neighbor->GetActorLabel()).Contains( TEXT("itemBasic"), ESearchCase::CaseSensitive, ESearchDir::FromEnd )) {
if(! (((AitemBasic*)neighbor)->found) ){
((AitemBasic*)neighbor)->found = true;
row = ((AitemBasic*)neighbor)->GetMazeLocation().X;
col = ((AitemBasic*)neighbor)->GetMazeLocation().Y;
TActorIterator<AMaze> ActorItr =TActorIterator<AMaze>(GetWorld());
if(ActorItr){
AllTheItems = ActorItr->GetAllTheItems();
MazeDimensions = ActorItr->GetMazeDimensions();
for(int i=0; i< ((MazeDimensions.X>MazeDimensions.Y)?MazeDimensions.X-2:MazeDimensions.Y-2) ; i++){
if((int)(AllTheItems[i].X) == row && (int)(AllTheItems[i].Y) == col )
AllTheItems[i].Z = 1;
}
}
neighbor->SetActorLocation( FVector(0, 0, -1000) );
//increment itemBasic in Hero's Bag
switch(((AitemBasic*)neighbor)->itemType){
case 'A':
HeroBag->push("Pill");
Pill = true;
break;
case 'B':
HeroBag->push("Pyramid");
Pill = false;
break;
case 'C':
HeroBag->push("Macaroni");
Pill = false;
break;
case 'D':
HeroBag->push("Moldy Cheese");
Pill= false;
break;
default:
HeroBag->push("Trash");
Pill=false;
break;
}
}
//check to see if all items have been found
TActorIterator<AitemsSpawning> ActorItrItems =TActorIterator<AitemsSpawning>(GetWorld());
if(ActorItrItems){
if(ActorItrItems->allItemsFound() && !hasAllItems){
hasAllItems = true;
TActorIterator<AMaze> ActorItrMaze =TActorIterator<AMaze>(GetWorld());
if(ActorItrMaze){
ActorItrMaze->openExit();
}
}
}
}
}