diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index 4703fe4..bba151e 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -4,14 +4,14 @@ +EditProfiles=(Name="Trigger",CustomResponses=((Channel=Projectile, Response=ECR_Ignore))) [/Script/EngineSettings.GameMapsSettings] -EditorStartupMap=/Game/FirstPersonCPP/Maps/FirstPersonExampleMap +EditorStartupMap=/Game/train.train LocalMapOptions= TransitionMap= bUseSplitscreen=True TwoPlayerSplitscreenLayout=Horizontal ThreePlayerSplitscreenLayout=FavorTop GameInstanceClass=/Script/Engine.GameInstance -GameDefaultMap=/Game/FirstPersonCPP/Maps/FirstPersonExampleMap +GameDefaultMap=/Game/train.train ServerDefaultMap=/Engine/Maps/Entry GlobalDefaultGameMode=/Script/SevenStars.SevenStarsGameMode GlobalDefaultServerGameMode=None diff --git a/Config/DefaultGame.ini b/Config/DefaultGame.ini index 5871f74..25736cd 100644 --- a/Config/DefaultGame.ini +++ b/Config/DefaultGame.ini @@ -5,3 +5,5 @@ ProjectName=First Person Template [/Script/EngineSettings.GeneralProjectSettings] ProjectID=806DC1DF487FAA81AFF13EA89823009B +bAllowWindowResize=False + diff --git a/Content/FirstPersonCPP/Blueprints/FirstPersonCharacter.uasset b/Content/FirstPersonCPP/Blueprints/FirstPersonCharacter.uasset index 8175bca..1289f04 100644 Binary files a/Content/FirstPersonCPP/Blueprints/FirstPersonCharacter.uasset and b/Content/FirstPersonCPP/Blueprints/FirstPersonCharacter.uasset differ diff --git a/Content/FirstPersonCPP/Blueprints/FirstPersonProjectile.uasset b/Content/FirstPersonCPP/Blueprints/FirstPersonProjectile.uasset deleted file mode 100644 index aa75c29..0000000 Binary files a/Content/FirstPersonCPP/Blueprints/FirstPersonProjectile.uasset and /dev/null differ diff --git a/Content/FirstPersonCharacter.uasset b/Content/FirstPersonCharacter.uasset new file mode 100644 index 0000000..c0b316d Binary files /dev/null and b/Content/FirstPersonCharacter.uasset differ diff --git a/Content/Geometry/Meshes/Plane_009.uasset b/Content/Geometry/Meshes/Plane_009.uasset index b2f43e8..9f0fb92 100644 Binary files a/Content/Geometry/Meshes/Plane_009.uasset and b/Content/Geometry/Meshes/Plane_009.uasset differ diff --git a/Content/Geometry/Meshes/Plane_011.uasset b/Content/Geometry/Meshes/Plane_011.uasset index ed02ccc..d4c6dcd 100644 Binary files a/Content/Geometry/Meshes/Plane_011.uasset and b/Content/Geometry/Meshes/Plane_011.uasset differ diff --git a/Content/Geometry/Meshes/Plane_012.uasset b/Content/Geometry/Meshes/Plane_012.uasset index 3f296bb..4871cc4 100644 Binary files a/Content/Geometry/Meshes/Plane_012.uasset and b/Content/Geometry/Meshes/Plane_012.uasset differ diff --git a/Content/Geometry/Meshes/Plane_016.uasset b/Content/Geometry/Meshes/Plane_016.uasset index 5717127..c67ca79 100644 Binary files a/Content/Geometry/Meshes/Plane_016.uasset and b/Content/Geometry/Meshes/Plane_016.uasset differ diff --git a/Content/Geometry/Meshes/Plane_021.uasset b/Content/Geometry/Meshes/Plane_021.uasset index d70339d..c23308a 100644 Binary files a/Content/Geometry/Meshes/Plane_021.uasset and b/Content/Geometry/Meshes/Plane_021.uasset differ diff --git a/Content/Geometry/Meshes/Plane_035.uasset b/Content/Geometry/Meshes/Plane_035.uasset index 357b317..7db390a 100644 Binary files a/Content/Geometry/Meshes/Plane_035.uasset and b/Content/Geometry/Meshes/Plane_035.uasset differ diff --git a/Content/Geometry/Meshes/Plane_053.uasset b/Content/Geometry/Meshes/Plane_053.uasset index cb3aa78..90a7d89 100644 Binary files a/Content/Geometry/Meshes/Plane_053.uasset and b/Content/Geometry/Meshes/Plane_053.uasset differ diff --git a/Content/Music/sevenstars_loop.uasset b/Content/Music/sevenstars_loop.uasset new file mode 100644 index 0000000..62413f6 Binary files /dev/null and b/Content/Music/sevenstars_loop.uasset differ diff --git a/Content/FirstPersonCPP/Maps/train.umap b/Content/train.umap similarity index 74% rename from Content/FirstPersonCPP/Maps/train.umap rename to Content/train.umap index 4c3e4dc..71c6d8f 100644 Binary files a/Content/FirstPersonCPP/Maps/train.umap and b/Content/train.umap differ diff --git a/Content/train_BuiltData.uasset b/Content/train_BuiltData.uasset new file mode 100644 index 0000000..19c317d Binary files /dev/null and b/Content/train_BuiltData.uasset differ diff --git a/Source/SevenStars/SevenStarsCharacter.cpp b/Source/SevenStars/SevenStarsCharacter.cpp index d81798b..e7c30b6 100644 --- a/Source/SevenStars/SevenStarsCharacter.cpp +++ b/Source/SevenStars/SevenStarsCharacter.cpp @@ -1,7 +1,6 @@ // Copyright 1998-2018 Epic Games, Inc. All Rights Reserved. #include "SevenStarsCharacter.h" -#include "SevenStarsProjectile.h" #include "Animation/AnimInstance.h" #include "Camera/CameraComponent.h" #include "Components/CapsuleComponent.h" @@ -9,18 +8,14 @@ #include "GameFramework/InputSettings.h" #include "HeadMountedDisplayFunctionLibrary.h" #include "Kismet/GameplayStatics.h" -#include "MotionControllerComponent.h" -#include "XRMotionControllerBase.h" // for FXRMotionControllerBase::RightHandSourceId DEFINE_LOG_CATEGORY_STATIC(LogFPChar, Warning, All); -////////////////////////////////////////////////////////////////////////// -// ASevenStarsCharacter ASevenStarsCharacter::ASevenStarsCharacter() { // Set size for collision capsule - GetCapsuleComponent()->InitCapsuleSize(55.f, 96.0f); + GetCapsuleComponent()->InitCapsuleSize(20.f, 96.0f); // set our turn rates for input BaseTurnRate = 45.f; @@ -31,100 +26,17 @@ ASevenStarsCharacter::ASevenStarsCharacter() FirstPersonCameraComponent->SetupAttachment(GetCapsuleComponent()); FirstPersonCameraComponent->RelativeLocation = FVector(-39.56f, 1.75f, 64.f); // Position the camera FirstPersonCameraComponent->bUsePawnControlRotation = true; - - // Create a mesh component that will be used when being viewed from a '1st person' view (when controlling this pawn) - Mesh1P = CreateDefaultSubobject(TEXT("CharacterMesh1P")); - Mesh1P->SetOnlyOwnerSee(true); - Mesh1P->SetupAttachment(FirstPersonCameraComponent); - Mesh1P->bCastDynamicShadow = false; - Mesh1P->CastShadow = false; - Mesh1P->RelativeRotation = FRotator(1.9f, -19.19f, 5.2f); - Mesh1P->RelativeLocation = FVector(-0.5f, -4.4f, -155.7f); - - // Create a gun mesh component - FP_Gun = CreateDefaultSubobject(TEXT("FP_Gun")); - FP_Gun->SetOnlyOwnerSee(true); // only the owning player will see this mesh - FP_Gun->bCastDynamicShadow = false; - FP_Gun->CastShadow = false; - // FP_Gun->SetupAttachment(Mesh1P, TEXT("GripPoint")); - FP_Gun->SetupAttachment(RootComponent); - - FP_MuzzleLocation = CreateDefaultSubobject(TEXT("MuzzleLocation")); - FP_MuzzleLocation->SetupAttachment(FP_Gun); - FP_MuzzleLocation->SetRelativeLocation(FVector(0.2f, 48.4f, -10.6f)); - - // Default offset from the character location for projectiles to spawn - GunOffset = FVector(100.0f, 0.0f, 10.0f); - - // Note: The ProjectileClass and the skeletal mesh/anim blueprints for Mesh1P, FP_Gun, and VR_Gun - // are set in the derived blueprint asset named MyCharacter to avoid direct content references in C++. - - // Create VR Controllers. - R_MotionController = CreateDefaultSubobject(TEXT("R_MotionController")); - R_MotionController->MotionSource = FXRMotionControllerBase::RightHandSourceId; - R_MotionController->SetupAttachment(RootComponent); - L_MotionController = CreateDefaultSubobject(TEXT("L_MotionController")); - L_MotionController->SetupAttachment(RootComponent); - - // Create a gun and attach it to the right-hand VR controller. - // Create a gun mesh component - VR_Gun = CreateDefaultSubobject(TEXT("VR_Gun")); - VR_Gun->SetOnlyOwnerSee(true); // only the owning player will see this mesh - VR_Gun->bCastDynamicShadow = false; - VR_Gun->CastShadow = false; - VR_Gun->SetupAttachment(R_MotionController); - VR_Gun->SetRelativeRotation(FRotator(0.0f, -90.0f, 0.0f)); - - VR_MuzzleLocation = CreateDefaultSubobject(TEXT("VR_MuzzleLocation")); - VR_MuzzleLocation->SetupAttachment(VR_Gun); - VR_MuzzleLocation->SetRelativeLocation(FVector(0.000004, 53.999992, 10.000000)); - VR_MuzzleLocation->SetRelativeRotation(FRotator(0.0f, 90.0f, 0.0f)); // Counteract the rotation of the VR gun model. - - // Uncomment the following line to turn motion controllers on by default: - //bUsingMotionControllers = true; } void ASevenStarsCharacter::BeginPlay() { - // Call the base class Super::BeginPlay(); - - //Attach gun mesh component to Skeleton, doing it here because the skeleton is not yet created in the constructor - FP_Gun->AttachToComponent(Mesh1P, FAttachmentTransformRules(EAttachmentRule::SnapToTarget, true), TEXT("GripPoint")); - - // Show or hide the two versions of the gun based on whether or not we're using motion controllers. - if (bUsingMotionControllers) - { - VR_Gun->SetHiddenInGame(false, true); - Mesh1P->SetHiddenInGame(true, true); - } - else - { - VR_Gun->SetHiddenInGame(true, true); - Mesh1P->SetHiddenInGame(false, true); - } } -////////////////////////////////////////////////////////////////////////// -// Input - void ASevenStarsCharacter::SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) { - // set up gameplay key bindings check(PlayerInputComponent); - // Bind jump events - PlayerInputComponent->BindAction("Jump", IE_Pressed, this, &ACharacter::Jump); - PlayerInputComponent->BindAction("Jump", IE_Released, this, &ACharacter::StopJumping); - - // Bind fire event - PlayerInputComponent->BindAction("Fire", IE_Pressed, this, &ASevenStarsCharacter::OnFire); - - // Enable touchscreen input - EnableTouchscreenMovement(PlayerInputComponent); - - PlayerInputComponent->BindAction("ResetVR", IE_Pressed, this, &ASevenStarsCharacter::OnResetVR); - // Bind movement events PlayerInputComponent->BindAxis("MoveForward", this, &ASevenStarsCharacter::MoveForward); PlayerInputComponent->BindAxis("MoveRight", this, &ASevenStarsCharacter::MoveRight); @@ -138,122 +50,6 @@ void ASevenStarsCharacter::SetupPlayerInputComponent(class UInputComponent* Play PlayerInputComponent->BindAxis("LookUpRate", this, &ASevenStarsCharacter::LookUpAtRate); } -void ASevenStarsCharacter::OnFire() -{ - // try and fire a projectile - if (ProjectileClass != NULL) - { - UWorld* const World = GetWorld(); - if (World != NULL) - { - if (bUsingMotionControllers) - { - const FRotator SpawnRotation = VR_MuzzleLocation->GetComponentRotation(); - const FVector SpawnLocation = VR_MuzzleLocation->GetComponentLocation(); - World->SpawnActor(ProjectileClass, SpawnLocation, SpawnRotation); - } - else - { - const FRotator SpawnRotation = GetControlRotation(); - // MuzzleOffset is in camera space, so transform it to world space before offsetting from the character location to find the final muzzle position - const FVector SpawnLocation = ((FP_MuzzleLocation != nullptr) ? FP_MuzzleLocation->GetComponentLocation() : GetActorLocation()) + SpawnRotation.RotateVector(GunOffset); - - //Set Spawn Collision Handling Override - FActorSpawnParameters ActorSpawnParams; - ActorSpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AdjustIfPossibleButDontSpawnIfColliding; - - // spawn the projectile at the muzzle - World->SpawnActor(ProjectileClass, SpawnLocation, SpawnRotation, ActorSpawnParams); - } - } - } - - // try and play the sound if specified - if (FireSound != NULL) - { - UGameplayStatics::PlaySoundAtLocation(this, FireSound, GetActorLocation()); - } - - // try and play a firing animation if specified - if (FireAnimation != NULL) - { - // Get the animation object for the arms mesh - UAnimInstance* AnimInstance = Mesh1P->GetAnimInstance(); - if (AnimInstance != NULL) - { - AnimInstance->Montage_Play(FireAnimation, 1.f); - } - } -} - -void ASevenStarsCharacter::OnResetVR() -{ - UHeadMountedDisplayFunctionLibrary::ResetOrientationAndPosition(); -} - -void ASevenStarsCharacter::BeginTouch(const ETouchIndex::Type FingerIndex, const FVector Location) -{ - if (TouchItem.bIsPressed == true) - { - return; - } - if ((FingerIndex == TouchItem.FingerIndex) && (TouchItem.bMoved == false)) - { - OnFire(); - } - TouchItem.bIsPressed = true; - TouchItem.FingerIndex = FingerIndex; - TouchItem.Location = Location; - TouchItem.bMoved = false; -} - -void ASevenStarsCharacter::EndTouch(const ETouchIndex::Type FingerIndex, const FVector Location) -{ - if (TouchItem.bIsPressed == false) - { - return; - } - TouchItem.bIsPressed = false; -} - -//Commenting this section out to be consistent with FPS BP template. -//This allows the user to turn without using the right virtual joystick - -//void ASevenStarsCharacter::TouchUpdate(const ETouchIndex::Type FingerIndex, const FVector Location) -//{ -// if ((TouchItem.bIsPressed == true) && (TouchItem.FingerIndex == FingerIndex)) -// { -// if (TouchItem.bIsPressed) -// { -// if (GetWorld() != nullptr) -// { -// UGameViewportClient* ViewportClient = GetWorld()->GetGameViewport(); -// if (ViewportClient != nullptr) -// { -// FVector MoveDelta = Location - TouchItem.Location; -// FVector2D ScreenSize; -// ViewportClient->GetViewportSize(ScreenSize); -// FVector2D ScaledDelta = FVector2D(MoveDelta.X, MoveDelta.Y) / ScreenSize; -// if (FMath::Abs(ScaledDelta.X) >= 4.0 / ScreenSize.X) -// { -// TouchItem.bMoved = true; -// float Value = ScaledDelta.X * BaseTurnRate; -// AddControllerYawInput(Value); -// } -// if (FMath::Abs(ScaledDelta.Y) >= 4.0 / ScreenSize.Y) -// { -// TouchItem.bMoved = true; -// float Value = ScaledDelta.Y * BaseTurnRate; -// AddControllerPitchInput(Value); -// } -// TouchItem.Location = Location; -// } -// TouchItem.Location = Location; -// } -// } -// } -//} - void ASevenStarsCharacter::MoveForward(float Value) { if (Value != 0.0f) @@ -283,18 +79,3 @@ void ASevenStarsCharacter::LookUpAtRate(float Rate) // calculate delta for this frame from the rate information AddControllerPitchInput(Rate * BaseLookUpRate * GetWorld()->GetDeltaSeconds()); } - -bool ASevenStarsCharacter::EnableTouchscreenMovement(class UInputComponent* PlayerInputComponent) -{ - if (FPlatformMisc::SupportsTouchInput() || GetDefault()->bUseMouseForTouch) - { - PlayerInputComponent->BindTouch(EInputEvent::IE_Pressed, this, &ASevenStarsCharacter::BeginTouch); - PlayerInputComponent->BindTouch(EInputEvent::IE_Released, this, &ASevenStarsCharacter::EndTouch); - - //Commenting this out to be more consistent with FPS BP template. - //PlayerInputComponent->BindTouch(EInputEvent::IE_Repeat, this, &ASevenStarsCharacter::TouchUpdate); - return true; - } - - return false; -} diff --git a/Source/SevenStars/SevenStarsCharacter.h b/Source/SevenStars/SevenStarsCharacter.h index 1b8dd85..5c6b90a 100644 --- a/Source/SevenStars/SevenStarsCharacter.h +++ b/Source/SevenStars/SevenStarsCharacter.h @@ -17,34 +17,10 @@ class ASevenStarsCharacter : public ACharacter UPROPERTY(VisibleDefaultsOnly, Category=Mesh) class USkeletalMeshComponent* Mesh1P; - /** Gun mesh: 1st person view (seen only by self) */ - UPROPERTY(VisibleDefaultsOnly, Category = Mesh) - class USkeletalMeshComponent* FP_Gun; - - /** Location on gun mesh where projectiles should spawn. */ - UPROPERTY(VisibleDefaultsOnly, Category = Mesh) - class USceneComponent* FP_MuzzleLocation; - - /** Gun mesh: VR view (attached to the VR controller directly, no arm, just the actual gun) */ - UPROPERTY(VisibleDefaultsOnly, Category = Mesh) - class USkeletalMeshComponent* VR_Gun; - - /** Location on VR gun mesh where projectiles should spawn. */ - UPROPERTY(VisibleDefaultsOnly, Category = Mesh) - class USceneComponent* VR_MuzzleLocation; - /** First person camera */ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true")) class UCameraComponent* FirstPersonCameraComponent; - /** Motion controller (right hand) */ - UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = "true")) - class UMotionControllerComponent* R_MotionController; - - /** Motion controller (left hand) */ - UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = "true")) - class UMotionControllerComponent* L_MotionController; - public: ASevenStarsCharacter(); @@ -64,10 +40,6 @@ public: UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Gameplay) FVector GunOffset; - /** Projectile class to spawn */ - UPROPERTY(EditDefaultsOnly, Category=Projectile) - TSubclassOf ProjectileClass; - /** Sound to play each time we fire */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Gameplay) class USoundBase* FireSound; @@ -81,12 +53,6 @@ public: uint32 bUsingMotionControllers : 1; protected: - - /** Fires a projectile. */ - void OnFire(); - - /** Resets HMD orientation and position in VR. */ - void OnResetVR(); /** Handles moving forward/backward */ void MoveForward(float Val); @@ -105,33 +71,12 @@ protected: * @param Rate This is a normalized rate, i.e. 1.0 means 100% of desired turn rate */ void LookUpAtRate(float Rate); - - struct TouchData - { - TouchData() { bIsPressed = false;Location=FVector::ZeroVector;} - bool bIsPressed; - ETouchIndex::Type FingerIndex; - FVector Location; - bool bMoved; - }; - void BeginTouch(const ETouchIndex::Type FingerIndex, const FVector Location); - void EndTouch(const ETouchIndex::Type FingerIndex, const FVector Location); - void TouchUpdate(const ETouchIndex::Type FingerIndex, const FVector Location); - TouchData TouchItem; protected: // APawn interface virtual void SetupPlayerInputComponent(UInputComponent* InputComponent) override; // End of APawn interface - /* - * Configures input for touchscreen devices if there is a valid touch interface for doing so - * - * @param InputComponent The input component pointer to bind controls to - * @returns true if touch controls were enabled. - */ - bool EnableTouchscreenMovement(UInputComponent* InputComponent); - public: /** Returns Mesh1P subobject **/ FORCEINLINE class USkeletalMeshComponent* GetMesh1P() const { return Mesh1P; } diff --git a/Source/SevenStars/SevenStarsHUD.cpp b/Source/SevenStars/SevenStarsHUD.cpp index 20060ca..12657e4 100644 --- a/Source/SevenStars/SevenStarsHUD.cpp +++ b/Source/SevenStars/SevenStarsHUD.cpp @@ -9,27 +9,10 @@ ASevenStarsHUD::ASevenStarsHUD() { - // Set the crosshair texture - static ConstructorHelpers::FObjectFinder CrosshairTexObj(TEXT("/Game/FirstPerson/Textures/FirstPersonCrosshair")); - CrosshairTex = CrosshairTexObj.Object; } void ASevenStarsHUD::DrawHUD() { Super::DrawHUD(); - - // Draw very simple crosshair - - // find center of the Canvas - const FVector2D Center(Canvas->ClipX * 0.5f, Canvas->ClipY * 0.5f); - - // offset by half the texture's dimensions so that the center of the texture aligns with the center of the Canvas - const FVector2D CrosshairDrawPosition( (Center.X), - (Center.Y + 20.0f)); - - // draw the crosshair - FCanvasTileItem TileItem( CrosshairDrawPosition, CrosshairTex->Resource, FLinearColor::White); - TileItem.BlendMode = SE_BLEND_Translucent; - Canvas->DrawItem( TileItem ); } diff --git a/Source/SevenStars/SevenStarsHUD.h b/Source/SevenStars/SevenStarsHUD.h index cc56457..b0fd00e 100644 --- a/Source/SevenStars/SevenStarsHUD.h +++ b/Source/SevenStars/SevenStarsHUD.h @@ -14,12 +14,6 @@ class ASevenStarsHUD : public AHUD public: ASevenStarsHUD(); - /** Primary draw call for the HUD */ virtual void DrawHUD() override; - -private: - /** Crosshair asset pointer */ - class UTexture2D* CrosshairTex; - }; diff --git a/Source/SevenStars/SevenStarsProjectile.cpp b/Source/SevenStars/SevenStarsProjectile.cpp deleted file mode 100644 index 95e3ad5..0000000 --- a/Source/SevenStars/SevenStarsProjectile.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved. - -#include "SevenStarsProjectile.h" -#include "GameFramework/ProjectileMovementComponent.h" -#include "Components/SphereComponent.h" - -ASevenStarsProjectile::ASevenStarsProjectile() -{ - // Use a sphere as a simple collision representation - CollisionComp = CreateDefaultSubobject(TEXT("SphereComp")); - CollisionComp->InitSphereRadius(5.0f); - CollisionComp->BodyInstance.SetCollisionProfileName("Projectile"); - CollisionComp->OnComponentHit.AddDynamic(this, &ASevenStarsProjectile::OnHit); // set up a notification for when this component hits something blocking - - // Players can't walk on it - CollisionComp->SetWalkableSlopeOverride(FWalkableSlopeOverride(WalkableSlope_Unwalkable, 0.f)); - CollisionComp->CanCharacterStepUpOn = ECB_No; - - // Set as root component - RootComponent = CollisionComp; - - // Use a ProjectileMovementComponent to govern this projectile's movement - ProjectileMovement = CreateDefaultSubobject(TEXT("ProjectileComp")); - ProjectileMovement->UpdatedComponent = CollisionComp; - ProjectileMovement->InitialSpeed = 3000.f; - ProjectileMovement->MaxSpeed = 3000.f; - ProjectileMovement->bRotationFollowsVelocity = true; - ProjectileMovement->bShouldBounce = true; - - // Die after 3 seconds by default - InitialLifeSpan = 3.0f; -} - -void ASevenStarsProjectile::OnHit(UPrimitiveComponent* HitComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit) -{ - // Only add impulse and destroy projectile if we hit a physics - if ((OtherActor != NULL) && (OtherActor != this) && (OtherComp != NULL) && OtherComp->IsSimulatingPhysics()) - { - OtherComp->AddImpulseAtLocation(GetVelocity() * 100.0f, GetActorLocation()); - - Destroy(); - } -} \ No newline at end of file diff --git a/Source/SevenStars/SevenStarsProjectile.h b/Source/SevenStars/SevenStarsProjectile.h deleted file mode 100644 index 9a71e6c..0000000 --- a/Source/SevenStars/SevenStarsProjectile.h +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved. - -#pragma once - -#include "CoreMinimal.h" -#include "GameFramework/Actor.h" -#include "SevenStarsProjectile.generated.h" - -UCLASS(config=Game) -class ASevenStarsProjectile : public AActor -{ - GENERATED_BODY() - - /** Sphere collision component */ - UPROPERTY(VisibleDefaultsOnly, Category=Projectile) - class USphereComponent* CollisionComp; - - /** Projectile movement component */ - UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Movement, meta = (AllowPrivateAccess = "true")) - class UProjectileMovementComponent* ProjectileMovement; - -public: - ASevenStarsProjectile(); - - /** called when projectile hits something */ - UFUNCTION() - void OnHit(UPrimitiveComponent* HitComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit); - - /** Returns CollisionComp subobject **/ - FORCEINLINE class USphereComponent* GetCollisionComp() const { return CollisionComp; } - /** Returns ProjectileMovement subobject **/ - FORCEINLINE class UProjectileMovementComponent* GetProjectileMovement() const { return ProjectileMovement; } -}; -