Compare commits
No commits in common. "2e59bb6e0e2c118c8ac4a07dc79117a453e5413a" and "03023ed4947c1d68b4948a07bd1717226c048afc" have entirely different histories.
2e59bb6e0e
...
03023ed494
BIN
Content/Gamemode/BP_DefaultGamemode.uasset (Stored with Git LFS)
BIN
Content/Gamemode/BP_DefaultGamemode.uasset (Stored with Git LFS)
Binary file not shown.
|
@ -37,6 +37,7 @@ void APickup::Tick(float DeltaSeconds)
|
||||||
if (currentDistance <= PickupMovementRange)
|
if (currentDistance <= PickupMovementRange)
|
||||||
{
|
{
|
||||||
double speed = 400 / currentDistance;
|
double speed = 400 / currentDistance;
|
||||||
|
UE_LOG(LogTemp, Warning, TEXT("The integer value is: %f"), speed);
|
||||||
FVector location = FMath::VInterpTo(actorLocation, playerLocation, DeltaSeconds, speed);
|
FVector location = FMath::VInterpTo(actorLocation, playerLocation, DeltaSeconds, speed);
|
||||||
SetActorLocation(location);
|
SetActorLocation(location);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,62 +3,3 @@
|
||||||
|
|
||||||
#include "VampireGameMode.h"
|
#include "VampireGameMode.h"
|
||||||
|
|
||||||
#include "Kismet/GameplayStatics.h"
|
|
||||||
|
|
||||||
void AVampireGameMode::BeginPlay()
|
|
||||||
{
|
|
||||||
Super::BeginPlay();
|
|
||||||
|
|
||||||
PlayerCharacter = Cast<APlayerCharacter>(UGameplayStatics::GetPlayerCharacter(GetWorld(), 0));
|
|
||||||
PlayerController = Cast<AVampirePlayerController>(UGameplayStatics::GetPlayerController(PlayerCharacter, 0));
|
|
||||||
|
|
||||||
GetWorldTimerManager().SetTimer(SpawnEnemyTimerDelegate, this, &AVampireGameMode::SpawnEnemy, 1.0f, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AVampireGameMode::SpawnEnemy()
|
|
||||||
{
|
|
||||||
FVector TopLeft, TopLeftDir;
|
|
||||||
FVector TopRight, TopRightDir;
|
|
||||||
FVector BottomLeft, BottomLeftDir;
|
|
||||||
FVector BottomRight, BottomRightDir;
|
|
||||||
FVector CenterPos, CenterDir;
|
|
||||||
|
|
||||||
FVector2d ViewportSize;
|
|
||||||
GEngine->GameViewport->GetViewportSize(ViewportSize);
|
|
||||||
|
|
||||||
PlayerController->DeprojectScreenPositionToWorld(0, 0, TopLeft, TopLeftDir);
|
|
||||||
PlayerController->DeprojectScreenPositionToWorld(ViewportSize.X, 0, TopRight, TopRightDir);
|
|
||||||
PlayerController->DeprojectScreenPositionToWorld(0, ViewportSize.Y, BottomLeft, BottomLeftDir);
|
|
||||||
PlayerController->DeprojectScreenPositionToWorld(ViewportSize.X, ViewportSize.Y, BottomRight, BottomRightDir);
|
|
||||||
PlayerController->DeprojectScreenPositionToWorld(ViewportSize.X / 2, ViewportSize.Y / 2, CenterPos, CenterDir);
|
|
||||||
|
|
||||||
FVector SpawnLocation;
|
|
||||||
switch (FMath::RandRange(0, 3))
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
SpawnLocation = FMath::Lerp(TopLeft, TopRight, FMath::RandRange(0.0f, 1.0f));
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
SpawnLocation = FMath::Lerp(TopRight, BottomRight, FMath::RandRange(0.0f, 1.0f));
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
SpawnLocation = FMath::Lerp(BottomRight, BottomLeft, FMath::RandRange(0.0f, 1.0f));
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
SpawnLocation = FMath::Lerp(BottomLeft, TopLeft, FMath::RandRange(0.0f, 1.0f));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
UE_LOG(LogTemp, Warning, TEXT("Something broke"));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
SpawnLocation.Z = PlayerCharacter->GetActorLocation().Z;
|
|
||||||
FTransform Transform;
|
|
||||||
Transform.SetLocation(SpawnLocation);
|
|
||||||
|
|
||||||
FActorSpawnParameters SpawnParameters;
|
|
||||||
SpawnParameters.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
|
|
||||||
|
|
||||||
AEnemyCharacter* actor = GetWorld()->SpawnActor<AEnemyCharacter>(EnemyTemplate, Transform, SpawnParameters);
|
|
||||||
actor->SpawnDefaultController();
|
|
||||||
}
|
|
||||||
|
|
|
@ -3,9 +3,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "CoreMinimal.h"
|
#include "CoreMinimal.h"
|
||||||
#include "EnemyCharacter.h"
|
|
||||||
#include "PlayerCharacter.h"
|
|
||||||
#include "VampirePlayerController.h"
|
|
||||||
#include "GameFramework/GameMode.h"
|
#include "GameFramework/GameMode.h"
|
||||||
#include "VampireGameMode.generated.h"
|
#include "VampireGameMode.generated.h"
|
||||||
|
|
||||||
|
@ -16,21 +13,5 @@ UCLASS()
|
||||||
class VAMPIRES_API AVampireGameMode : public AGameMode
|
class VAMPIRES_API AVampireGameMode : public AGameMode
|
||||||
{
|
{
|
||||||
GENERATED_BODY()
|
GENERATED_BODY()
|
||||||
|
|
||||||
public:
|
|
||||||
UPROPERTY(EditDefaultsOnly)
|
|
||||||
TSubclassOf<AEnemyCharacter> EnemyTemplate;
|
|
||||||
|
|
||||||
private:
|
|
||||||
APlayerCharacter* PlayerCharacter;
|
|
||||||
|
|
||||||
AVampirePlayerController* PlayerController;
|
|
||||||
|
|
||||||
FTimerHandle SpawnEnemyTimerDelegate;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual void BeginPlay() override;
|
|
||||||
|
|
||||||
UFUNCTION()
|
|
||||||
void SpawnEnemy();
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue