当前位置: 首页>>代码示例>>C++>>正文


C++ TActorIterator类代码示例

本文整理汇总了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 ();
}
开发者ID:Xeomuz,项目名称:Doom-Port-Source-Code,代码行数:33,代码来源:a_skies.cpp

示例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 ();
}
开发者ID:AkumaKing,项目名称:Xeu,代码行数:25,代码来源:a_movingcamera.cpp

示例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;
			}
		}
	}
}
开发者ID:1vanK,项目名称:AHRUnrealEngine,代码行数:30,代码来源:EnvQueryGenerator_ActorsOfClass.cpp

示例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;
			}
		}
	}
}
开发者ID:amyvmiwei,项目名称:UnrealEngine4,代码行数:28,代码来源:EnvQueryGenerator_ActorsOfClass.cpp

示例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());
        }
    }
    
}
开发者ID:nzayatz14,项目名称:MazeGameEnhanced,代码行数:18,代码来源:Avatar.cpp

示例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 ();
}
开发者ID:floverdevel,项目名称:zdoom,代码行数:21,代码来源:a_movingcamera.cpp

示例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 ();
}
开发者ID:Accusedbold,项目名称:zdoom,代码行数:36,代码来源:a_skies.cpp

示例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();
                }
            }
        }
    }

}
开发者ID:nzayatz14,项目名称:MazeGameEnhanced,代码行数:61,代码来源:Avatar.cpp


注:本文中的TActorIterator类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。