bewegende türen, +1 ending

This commit is contained in:
Johannes Theiner 2021-01-19 15:25:56 +01:00
parent d95399d843
commit 0ad011cb0a
Signed by: joethei
GPG Key ID: 9D2B9A00FDA85BCD
12 changed files with 114 additions and 3 deletions

Binary file not shown.

BIN
Content/Audio/Voice/29.wav Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,68 @@
#include "MovingActor.h"
#include "Components/AudioComponent.h"
#include "Kismet/GameplayStatics.h"
UMovingActor::UMovingActor()
{
PrimaryComponentTick.bCanEverTick = true;
}
void UMovingActor::BeginPlay()
{
Super::BeginPlay();
}
void UMovingActor::Move()
{
targetLocation = GetOwner()->GetActorLocation();
targetLocation.X += MovementTarget;
tempLocation = FVector(MovementSpeed, 0.0f, 0.0f);
if (Negative)
{
targetLocation.X -= MovementTarget;
targetLocation.Y += MovementTarget;
tempLocation = FVector(0.0f, MovementSpeed, 0.0f);
}
this->targetLocation = targetLocation;
this->moving = true;
TArray<UAudioComponent*> Audios;
GetOwner()->GetComponents<UAudioComponent>(Audios);
if (Audios.Num() == 0) return;
if (soundHasBeenPlayed) return;
for (auto Audio : Audios)
{
if (Audio->ComponentHasTag("location"))
{
UGameplayStatics::PlaySoundAtLocation(GetOwner(), Audio->Sound, GetOwner()->GetActorLocation(),
GetOwner()->GetActorRotation(), 1, 1, 0,
Audio->AttenuationSettings, nullptr, GetOwner());
}
else
{
Audio->Play();
}
}
soundHasBeenPlayed = true;
}
void UMovingActor::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
if (moving)
{
FVector Location = GetOwner()->GetActorLocation();
if (Location.Equals(targetLocation, 1.0f))
{
moving = false;
}
else
GetOwner()->SetActorLocation(Location + tempLocation);
}
}

View File

@ -0,0 +1,44 @@
#pragma once
#include "CoreMinimal.h"
#include "GameFramework//Actor.h"
#include "Components/ActorComponent.h"
#include "MovingActor.generated.h"
UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) )
class BUILDINGESCAPE_API UMovingActor : public UActorComponent
{
GENERATED_BODY()
public:
// Sets default values for this component's properties
UMovingActor();
protected:
// Called when the game starts
virtual void BeginPlay() override;
UFUNCTION(BlueprintCallable)
void Move();
public:
// Called every frame
virtual void TickComponent(float DeltaTime, ELevelTick TickType,
FActorComponentTickFunction* ThisTickFunction) override;
UPROPERTY(EditAnywhere)
float MovementSpeed = 15.f;
UPROPERTY(EditAnywhere)
float MovementTarget = 10.f;
UPROPERTY(EditAnywhere)
bool Negative = false;
private:
bool moving;
bool soundHasBeenPlayed;
FVector targetLocation;
FVector tempLocation;
};

View File

@ -1,6 +1,7 @@
#include "RotatingActor.h"
#include "Components/AudioComponent.h"
#include "Kismet/GameplayStatics.h"
URotatingActor::URotatingActor()

View File

@ -3,8 +3,6 @@
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "Components/ActorComponent.h"
#include "Kismet//GameplayStatics.h"
#include "RotatingActor.generated.h"
@ -22,7 +20,7 @@ protected:
void Rotate(FRotator TargetRotation);
UFUNCTION()
UFUNCTION(BlueprintCallable)
void Rotate();
public: