Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
- #include "MyProject2.h"
- #include "KillerCube.h"
- #include "UnrealMathUtility.h"
- AKillerCube::AKillerCube(const class FPostConstructInitializeProperties& PCIP)
- : Super(PCIP)
- {
- // Initialize variables first doofus.
- static ConstructorHelpers::FObjectFinder<UStaticMesh> Mesh(TEXT("StaticMesh'/Game/Meshes/road_peice.road_peice'"));
- InitialLifeSpan = 0;
- PrimaryActorTick.bCanEverTick = true;
- moveSpeed = 10;
- seperation = 787;
- MeshComp = PCIP.CreateDefaultSubobject<UStaticMeshComponent>(this, TEXT("ModelComp"));
- MeshComp->BodyInstance.SetCollisionProfileName("PhysicsActor"); // Collision profiles are defined in DefaultEngine.ini
- MeshComp->StaticMesh = Mesh.Object;
- MeshComp->SetRelativeScale3D(FVector(1.f, 1.f,1.f));
- //MeshComp->SetSimulatePhysics(true);
- MeshComp->SetRelativeLocation(FVector(0, 0, -100.f));
- RootComponent = MeshComp;
- FRotator RV_Rot = FRotator(0, 180, 0);
- for (int i = 0; i < PLATE_COUNT; i++)
- {
- MeshArray[i] = PCIP.CreateDefaultSubobject<UStaticMeshComponent>(this, *FString::Printf(TEXT("ModelComp%d"), i ));
- positionArray[i] = seperation * i;
- //MeshArray.Add(PCIP.CreateDefaultSubobject<UStaticMeshComponent>(this, TEXT("ModelComp")));
- if (MeshArray[i] != NULL && MeshArray[i]->IsValidLowLevel())
- {
- MeshArray[i]->BodyInstance.SetCollisionProfileName("PhysicsActor"); // Collision profiles are defined in DefaultEngine.ini
- MeshArray[i]->StaticMesh = Mesh.Object;
- MeshArray[i]->SetRelativeLocation(FVector(0, seperation*i, 50));
- MeshArray[i]->AttachParent = MeshComp;
- }
- MeshArrayOpposite[i] = PCIP.CreateDefaultSubobject<UStaticMeshComponent>(this, *FString::Printf(TEXT("ModelComp%d"), i + PLATE_COUNT + 1));
- if (MeshArrayOpposite[i] != NULL && MeshArrayOpposite[i]->IsValidLowLevel())
- {
- MeshArrayOpposite[i]->BodyInstance.SetCollisionProfileName("PhysicsActor"); // Collision profiles are defined in DefaultEngine.ini
- MeshArrayOpposite[i]->StaticMesh = Mesh.Object;
- MeshArrayOpposite[i]->SetRelativeLocation(FVector(0, seperation*i, 50));
- MeshArrayOpposite[i]->SetRelativeRotation(RV_Rot);
- MeshArrayOpposite[i]->AttachParent = MeshComp;
- }
- }
- }
- void AKillerCube::BeginPlay()
- {
- Super::BeginPlay();
- if (GEngine)
- {
- GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Blue, TEXT("THIS IS A THING NOW"));
- }
- }
- void AKillerCube::Tick(float DeltaSeconds)
- {
- Super::Tick(DeltaSeconds);
- float distance = moveSpeed * DeltaSeconds;
- //UE_LOG(LogTemp, Log, TEXT("Ticking!"));
- for (int i = 0; i < PLATE_COUNT; i++)
- {
- positionArray[i] = positionArray[i] + distance;
- if (positionArray[i] > PLATE_COUNT * seperation)
- {
- positionArray[i] = positionArray[i] - (PLATE_COUNT * seperation);
- }
- MeshArray[i]->SetRelativeLocation(FVector(0, positionArray[i], 50));
- MeshArrayOpposite[i]->SetRelativeLocation(FVector(0, positionArray[i], 50));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement