本文整理汇总了C++中TActorIterator类的典型用法代码示例。如果您正苦于以下问题:C++ TActorIterator类的具体用法?C++ TActorIterator怎么用?C++ TActorIterator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了TActorIterator类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: iterator
void ASkyPicker::PostBeginPlay ()
{
ASkyViewpoint *box;
Super::PostBeginPlay ();
if (args[0] == 0)
{
box = NULL;
}
else
{
TActorIterator<ASkyViewpoint> iterator (args[0]);
box = iterator.Next ();
}
if (box == NULL && args[0] != 0)
{
Printf ("Can't find SkyViewpoint %d for sector %td\n",
args[0], Sector - sectors);
}
else
{
if (0 == (args[1] & 2))
{
Sector->CeilingSkyBox = box;
}
if (0 == (args[1] & 1))
{
Sector->FloorSkyBox = box;
}
}
Destroy ();
}
示例2: iterator
void AInterpolationPoint::FormChain ()
{
if (flags & MF_AMBUSH)
return;
flags |= MF_AMBUSH;
TActorIterator<AInterpolationPoint> iterator (args[3] + 256 * args[4]);
Next = iterator.Next ();
if (Next == this) // Don't link to self
Next = iterator.Next ();
if (Next == NULL && (args[3] | args[4]))
Printf ("Can't find target for camera node %d\n", tid);
pitch = (signed int)((char)args[0]) * ANGLE_1;
if (pitch <= -ANGLE_90)
pitch = -ANGLE_90 + ANGLE_1;
else if (pitch >= ANGLE_90)
pitch = ANGLE_90 - ANGLE_1;
if (Next != NULL)
Next->FormChain ();
}
示例3: GenerateItems
void UEnvQueryGenerator_ActorsOfClass::GenerateItems(FEnvQueryInstance& QueryInstance) const
{
float RadiusValue = 0.0f;
float DensityValue = 0.0f;
UWorld* World = GEngine->GetWorldFromContextObject(QueryInstance.Owner.Get());
// @TODO add some logging here
if (World == NULL || QueryInstance.GetParamValue(Radius, RadiusValue, TEXT("Radius")) == false
|| SearchedActorClass == NULL)
{
return;
}
const float RadiusSq = FMath::Square(RadiusValue);
TArray<FVector> ContextLocations;
QueryInstance.PrepareContext(SearchCenter, ContextLocations);
for (TActorIterator<AActor> ItActor = TActorIterator<AActor>(World, SearchedActorClass); ItActor; ++ItActor)
{
for (int32 ContextIndex = 0; ContextIndex < ContextLocations.Num(); ++ContextIndex)
{
if (FVector::DistSquared(ContextLocations[ContextIndex], ItActor->GetActorLocation()) < RadiusSq)
{
QueryInstance.AddItemData<UEnvQueryItemType_Actor>(*ItActor);
break;
}
}
}
}
示例4: GenerateItems
void UEnvQueryGenerator_ActorsOfClass::GenerateItems(FEnvQueryInstance& QueryInstance) const
{
SearchRadius.BindData(QueryInstance.Owner.Get(), QueryInstance.QueryID);
float RadiusValue = SearchRadius.GetValue();
UWorld* World = GEngine->GetWorldFromContextObject(QueryInstance.Owner.Get());
if (World == NULL || SearchedActorClass == NULL)
{
return;
}
const float RadiusSq = FMath::Square(RadiusValue);
TArray<FVector> ContextLocations;
QueryInstance.PrepareContext(SearchCenter, ContextLocations);
for (TActorIterator<AActor> ItActor = TActorIterator<AActor>(World, SearchedActorClass); ItActor; ++ItActor)
{
for (int32 ContextIndex = 0; ContextIndex < ContextLocations.Num(); ++ContextIndex)
{
if (FVector::DistSquared(ContextLocations[ContextIndex], ItActor->GetActorLocation()) < RadiusSq)
{
QueryInstance.AddItemData<UEnvQueryItemType_Actor>(*ItActor);
break;
}
}
}
}
示例5: Tick
// Called every frame
void AAvatar::Tick( float DeltaTime )
{
Super::Tick( DeltaTime );
//check for the win if the user has all of the items and hasn't won
if(hasAllItems && !hasWon){
//move player start to that location
TActorIterator<AAvatarGameMode> ActorItr =TActorIterator<AAvatarGameMode>(GetWorld());
if (ActorItr) {
hasWon = ActorItr->checkForWin(hasWon, this->GetActorLocation());
}
}
}
示例6: iterator
void AInterpolationPoint::FormChain ()
{
if (flags & MF_AMBUSH)
return;
flags |= MF_AMBUSH;
TActorIterator<AInterpolationPoint> iterator (args[3] + 256 * args[4]);
Next = iterator.Next ();
if (Next == this) // Don't link to self
Next = iterator.Next ();
if (Next == NULL && (args[3] | args[4]))
Printf ("Can't find target for camera node %d\n", tid);
Angles.Pitch = (double)clamp<int>((signed char)args[0], -89, 89);
if (Next != NULL)
Next->FormChain ();
}
示例7: iterator
void ASkyPicker::PostBeginPlay ()
{
ASkyViewpoint *box;
Super::PostBeginPlay ();
if (args[0] == 0)
{
box = NULL;
}
else
{
TActorIterator<ASkyViewpoint> iterator (args[0]);
box = iterator.Next ();
}
if (box == NULL && args[0] != 0)
{
Printf ("Can't find SkyViewpoint %d for sector %td\n", args[0], Sector - sectors);
}
else
{
int boxindex = P_GetSkyboxPortal(box);
// Do not override special portal types, only regular skies.
if (0 == (args[1] & 2))
{
if (Sector->GetPortalType(sector_t::ceiling) == PORTS_SKYVIEWPOINT)
Sector->Portals[sector_t::ceiling] = boxindex;
}
if (0 == (args[1] & 1))
{
if (Sector->GetPortalType(sector_t::floor) == PORTS_SKYVIEWPOINT)
Sector->Portals[sector_t::floor] = boxindex;
}
}
Destroy ();
}
示例8: FVector
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();
}
}
}
}
}