Advertisement
Kybe

KillerCube.cpp

May 18th, 2014
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.90 KB | None | 0 0
  1. // Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
  2.  
  3. #include "MyProject2.h"
  4. #include "KillerCube.h"
  5. #include "UnrealMathUtility.h"
  6.  
  7.  
  8. AKillerCube::AKillerCube(const class FPostConstructInitializeProperties& PCIP)
  9.     : Super(PCIP)
  10. {
  11.     // Initialize variables first doofus.
  12.     static ConstructorHelpers::FObjectFinder<UStaticMesh> Mesh(TEXT("StaticMesh'/Game/Meshes/road_peice.road_peice'"));
  13.     InitialLifeSpan = 0;
  14.     PrimaryActorTick.bCanEverTick = true;
  15.     moveSpeed = 10;
  16.     seperation = 787;
  17.  
  18.     MeshComp = PCIP.CreateDefaultSubobject<UStaticMeshComponent>(this, TEXT("ModelComp"));
  19.     MeshComp->BodyInstance.SetCollisionProfileName("PhysicsActor");         // Collision profiles are defined in DefaultEngine.ini
  20.     MeshComp->StaticMesh = Mesh.Object;
  21.     MeshComp->SetRelativeScale3D(FVector(1.f, 1.f,1.f));
  22.     //MeshComp->SetSimulatePhysics(true);
  23.  
  24.     MeshComp->SetRelativeLocation(FVector(0, 0, -100.f));
  25.  
  26.     RootComponent = MeshComp;
  27.     FRotator RV_Rot = FRotator(0, 180, 0);
  28.     for (int i = 0; i < PLATE_COUNT; i++)
  29.     {
  30.         MeshArray[i] = PCIP.CreateDefaultSubobject<UStaticMeshComponent>(this, *FString::Printf(TEXT("ModelComp%d"), i ));
  31.         positionArray[i] = seperation * i;
  32.         //MeshArray.Add(PCIP.CreateDefaultSubobject<UStaticMeshComponent>(this, TEXT("ModelComp")));
  33.         if (MeshArray[i] != NULL && MeshArray[i]->IsValidLowLevel())
  34.         {
  35.             MeshArray[i]->BodyInstance.SetCollisionProfileName("PhysicsActor");         // Collision profiles are defined in DefaultEngine.ini
  36.             MeshArray[i]->StaticMesh = Mesh.Object;
  37.             MeshArray[i]->SetRelativeLocation(FVector(0, seperation*i, 50));
  38.             MeshArray[i]->AttachParent = MeshComp;
  39.         }
  40.         MeshArrayOpposite[i] = PCIP.CreateDefaultSubobject<UStaticMeshComponent>(this, *FString::Printf(TEXT("ModelComp%d"), i + PLATE_COUNT + 1));
  41.         if (MeshArrayOpposite[i] != NULL && MeshArrayOpposite[i]->IsValidLowLevel())
  42.         {
  43.             MeshArrayOpposite[i]->BodyInstance.SetCollisionProfileName("PhysicsActor");         // Collision profiles are defined in DefaultEngine.ini
  44.             MeshArrayOpposite[i]->StaticMesh = Mesh.Object;
  45.             MeshArrayOpposite[i]->SetRelativeLocation(FVector(0, seperation*i, 50));
  46.             MeshArrayOpposite[i]->SetRelativeRotation(RV_Rot);
  47.             MeshArrayOpposite[i]->AttachParent = MeshComp;
  48.         }
  49.     }
  50. }
  51.  
  52. void AKillerCube::BeginPlay()
  53. {
  54.     Super::BeginPlay();
  55.     if (GEngine)
  56.     {
  57.         GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Blue, TEXT("THIS IS A THING NOW"));
  58.     }
  59. }
  60.  
  61. void AKillerCube::Tick(float DeltaSeconds)
  62. {
  63.     Super::Tick(DeltaSeconds);
  64.     float distance = moveSpeed * DeltaSeconds;
  65.     //UE_LOG(LogTemp, Log, TEXT("Ticking!"));
  66.     for (int i = 0; i < PLATE_COUNT; i++)
  67.     {
  68.         positionArray[i] = positionArray[i] + distance;
  69.         if (positionArray[i] > PLATE_COUNT * seperation)
  70.         {
  71.             positionArray[i] = positionArray[i] - (PLATE_COUNT * seperation);
  72.         }
  73.         MeshArray[i]->SetRelativeLocation(FVector(0, positionArray[i], 50));
  74.         MeshArrayOpposite[i]->SetRelativeLocation(FVector(0, positionArray[i], 50));
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement