bewegende türen, +1 ending
This commit is contained in:
parent
d95399d843
commit
0ad011cb0a
BIN
Content/Audio/Voice/29.uasset
Normal file
BIN
Content/Audio/Voice/29.uasset
Normal file
Binary file not shown.
BIN
Content/Audio/Voice/29.wav
Normal file
BIN
Content/Audio/Voice/29.wav
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Content/Levels/NewWorld_BuiltData.uasset
Normal file
BIN
Content/Levels/NewWorld_BuiltData.uasset
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
68
Source/BuildingEscape/MovingActor.cpp
Normal file
68
Source/BuildingEscape/MovingActor.cpp
Normal 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);
|
||||
}
|
||||
}
|
44
Source/BuildingEscape/MovingActor.h
Normal file
44
Source/BuildingEscape/MovingActor.h
Normal 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;
|
||||
};
|
@ -1,6 +1,7 @@
|
||||
#include "RotatingActor.h"
|
||||
|
||||
#include "Components/AudioComponent.h"
|
||||
#include "Kismet/GameplayStatics.h"
|
||||
|
||||
|
||||
URotatingActor::URotatingActor()
|
||||
|
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user