From 42f5e0135be252b3a8417d9d4d051d7eb6d56eb8 Mon Sep 17 00:00:00 2001 From: Kingsmedia Date: Wed, 4 May 2022 19:17:25 +0200 Subject: [PATCH] 67 - Projectile Weapon Class --- Source/Blaster/Weapon/Projectile.cpp | 32 ++++++++++++++++++++++ Source/Blaster/Weapon/Projectile.h | 25 +++++++++++++++++ Source/Blaster/Weapon/ProjectileWeapon.cpp | 5 ++++ Source/Blaster/Weapon/ProjectileWeapon.h | 19 +++++++++++++ 4 files changed, 81 insertions(+) create mode 100644 Source/Blaster/Weapon/Projectile.cpp create mode 100644 Source/Blaster/Weapon/Projectile.h create mode 100644 Source/Blaster/Weapon/ProjectileWeapon.cpp create mode 100644 Source/Blaster/Weapon/ProjectileWeapon.h diff --git a/Source/Blaster/Weapon/Projectile.cpp b/Source/Blaster/Weapon/Projectile.cpp new file mode 100644 index 0000000..e7827f7 --- /dev/null +++ b/Source/Blaster/Weapon/Projectile.cpp @@ -0,0 +1,32 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Projectile.h" + +#include "Components/BoxComponent.h" + +AProjectile::AProjectile() +{ + PrimaryActorTick.bCanEverTick = true; + + CollisionBox = CreateDefaultSubobject(TEXT("CollisionBox"));\ + SetRootComponent(CollisionBox); + CollisionBox->SetCollisionObjectType(ECollisionChannel::ECC_WorldDynamic); + CollisionBox->SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics); + CollisionBox->SetCollisionResponseToChannels(ECollisionResponse::ECR_Ignore); + CollisionBox->SetCollisionResponseToChannel(ECollisionChannel::ECC_Visibility, ECollisionResponse::ECR_Block); + CollisionBox->SetCollisionResponseToChannel(ECollisionChannel::ECC_WorldStatic, ECollisionResponse::ECR_Block); +} + +void AProjectile::BeginPlay() +{ + Super::BeginPlay(); + +} + +void AProjectile::Tick(float DeltaTime) +{ + Super::Tick(DeltaTime); + +} + diff --git a/Source/Blaster/Weapon/Projectile.h b/Source/Blaster/Weapon/Projectile.h new file mode 100644 index 0000000..4668624 --- /dev/null +++ b/Source/Blaster/Weapon/Projectile.h @@ -0,0 +1,25 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/Actor.h" +#include "Projectile.generated.h" + +UCLASS() +class BLASTER_API AProjectile : public AActor +{ + GENERATED_BODY() + +public: + AProjectile(); + virtual void Tick(float DeltaTime) override; + +protected: + virtual void BeginPlay() override; + +public: + + UPROPERTY(EditAnywhere) + class UBoxComponent* CollisionBox; +}; diff --git a/Source/Blaster/Weapon/ProjectileWeapon.cpp b/Source/Blaster/Weapon/ProjectileWeapon.cpp new file mode 100644 index 0000000..c2a9878 --- /dev/null +++ b/Source/Blaster/Weapon/ProjectileWeapon.cpp @@ -0,0 +1,5 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "ProjectileWeapon.h" + diff --git a/Source/Blaster/Weapon/ProjectileWeapon.h b/Source/Blaster/Weapon/ProjectileWeapon.h new file mode 100644 index 0000000..f8e62b8 --- /dev/null +++ b/Source/Blaster/Weapon/ProjectileWeapon.h @@ -0,0 +1,19 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Weapon.h" +#include "ProjectileWeapon.generated.h" + +/** + * + */ +UCLASS() +class BLASTER_API AProjectileWeapon : public AWeapon +{ + GENERATED_BODY() + + + +};