From 89da8c44632992e1511a9ef3c2b87849cdc4ff53 Mon Sep 17 00:00:00 2001 From: Kubson96 <42842162+Kubson96@users.noreply.github.com> Date: Sat, 22 Feb 2025 23:31:23 +0100 Subject: [PATCH] feat: add logic for jump, sprint and crouch Added walk speed and sprint speed properties to character Moved dodge properties to character Implement logic for jump, sprint and crouch Changed dodge key from Shift to Alt --- .../Player/BP_ExoPlayerCharacter.uasset | Bin 26680 -> 26782 bytes .../Inputs/IMC_ExoMappingContext.uasset | Bin 13310 -> 13145 bytes .../Private/Player/ExoPlayerController.cpp | 37 ++++++++++++++---- .../Public/Characters/ExoPlayerCharacter.h | 12 ++++++ .../Exo/Public/Player/ExoPlayerController.h | 16 ++++---- 5 files changed, 49 insertions(+), 16 deletions(-) diff --git a/Content/Blueprints/Characters/Player/BP_ExoPlayerCharacter.uasset b/Content/Blueprints/Characters/Player/BP_ExoPlayerCharacter.uasset index 3b8aa071137cadf6dafd88551569701fb6364c40..1d7e9d5be5b1eb88d4b89d14ba735a0e27b8f4be 100644 GIT binary patch delta 6246 zcmb_feQ;FO6~7M?%!cNJuzAS_lCW-oBt{yb#9}azEC#aKWCQsyA)ia~$Omx~mxW5L zE`ERrYS24&{HF{!&Nz;h>O`$mWd@nn5vF$3zns>#&@U@ahtjIGf7x^HJLhG0vzy&I zp2^$$@%z1V&OP_s^KRaFUpw`I_VP+iyCR+1w(J=pL|~B+@F(uck@k@_ozPRF!|zqQ z5Kd?>U>EdAE!q2j!)~rPOmn^qYU)befjvfxs za51%i2k-BuzK5yMG7r~|g1kd!SH$BTBn){!h{LdG$!-UuaRvFM)FYq#^tg!2_)dK3?F` zze`i-)eF>L;#2TdfI0CHewyG{P1sZD(y@9YgvvMHVB$?}>TQNGSO{;$0D~N9kAm?f zgrA|ee|4vVCmb#vOFk<Yh1y2CX z`5T#XxnpYY&#kD|Icp=~+fBH*_+9yFah3K9sh8BIzXKPZ_h!3Fo-MagEQD8T+wDN2yf-nHqx42PwHOVQFtb$<(6#kyUWiy`6cJx{ z#1L1|*iEg#l;QeNMU!xgQ*t}CHEd=dWssi$l{d`d$r>W9lGpPK9jl4TD2HkQ4)zL1 zPYlYjn*g-jwwus(^70P5lf6u=5$qMC@x)ruqq^6R9qAgn@BEnC|I<$nb)Jv1vXrfC zB->tjy2-vFi$;0W&NbQ8<@NCjZpGEhubXn$vqmH?xcz%cl~>k#?3zb*c}i`p){ysm zoRyZUE0AZr*M0PwCRVEazz7t`i=I_;^iLz`n-bB%VqJ4#KNmAB!(6#Cp`VuVu=o$? z`5wJb1ze3RzmNxyK^*p;6L}{FWi7J@iM5VeP7NUrzqySMtyf+iwY%$y!fUpu`2Z9p z0v7|IGl&P-hBGK$+2*y|c9{d=mv?!~Z^lKU#O|?Xoe%yxs-j@SIHL^7-+L>wcu_dx zk!SM@*3Ms+I9zuJ;vgKEo6MouhLNeon4=_iA<_&od+`UvE3dcMN1DumRTelIIc(~* z5&FqJ~tlqpZrz>tDCz=0~~`1>XgFa`Tf-mI%zZ>Df7tC&RVTiKG|iL|Lje-advxP(e`w_gm*$=-ylnNb!x*F zYc1J8Rv|>yWZd%Ygs_8^Q=2%1JBYz)WYw7W0Z0;G*zE-ZtQ3EP_{z6Bav>h?bu1jy z4vv_7uCqLOT;*6-xz+;F-+WUuEt&HRcZjCU=3Cwj{+_VCZ?GAs;fTe_VG6NISG-E` zv5U%AxuYB7+0(snJiDxTR`;Y5&+48u`BhJu=298GZg-Wfoq||xWwc8^yZa8u2AXH@ z7AOi035&uQDd8Y4ctqt)FE06XZ*B6#n7c241&lG?4Y9B;g$D(%fuZ05LwsMJ=_}Dn z<@vrsZ>fSJK>W7ACW(0fesJOfnE>EvTP}|cHsqB-4+X7tj1TV<4f3+TLK~5bhqmYm z-O**%Kt>)`bQH_e<#Nryj8-OpK2WN$9&PZbmeiEH0KW_<=$(6Na&mnC_*6hFpB)kfy<3B@b7j@li($(Z0MQRsT7IXVCT gQar(tMs8#x-ioaYIZX-+r3p4FFgZQ)i&6Lg08XtJHvj+t delta 6171 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 bUnC29or;$Wk|xjfW7d;Q`xS+Kla2ocjT_A< diff --git a/Content/Blueprints/Player/Inputs/IMC_ExoMappingContext.uasset b/Content/Blueprints/Player/Inputs/IMC_ExoMappingContext.uasset index 04d163e47ff3df596788b788e48f91a84cf3cc5b..b6733f857a0f7c9fab56e5485a1330d23edd4080 100644 GIT binary patch literal 13145 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 ShootingComponent = PlayerCharacter->FindComponentByClass(); + + // Ustawianie w komponencie poruszania prędkości zapisanej w characterze + PlayerCharacter->GetCharacterMovement()->MaxWalkSpeed = PlayerCharacter->WalkSpeed; } void AExoPlayerController::PlayerTick(float DeltaTime) @@ -48,8 +51,10 @@ void AExoPlayerController::SetupInputComponent() EnhancedInputComponent->BindAction(InteractAction, ETriggerEvent::Triggered, this, &AExoPlayerController::Interact); EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Started, this, &AExoPlayerController::PlayerJump); EnhancedInputComponent->BindAction(DodgeAction, ETriggerEvent::Started, this, &AExoPlayerController::PlayerDodge); - EnhancedInputComponent->BindAction(CrouchAction, ETriggerEvent::Started, this, &AExoPlayerController::PlayerCrouch); - EnhancedInputComponent->BindAction(SprintAction, ETriggerEvent::Started, this, &AExoPlayerController::PlayerSprint); + EnhancedInputComponent->BindAction(CrouchAction, ETriggerEvent::Started, this, &AExoPlayerController::PlayerStartCrouch); + EnhancedInputComponent->BindAction(CrouchAction, ETriggerEvent::Completed, this, &AExoPlayerController::PlayerStopCrouch); + EnhancedInputComponent->BindAction(SprintAction, ETriggerEvent::Started, this, &AExoPlayerController::PlayerStartSprint); + EnhancedInputComponent->BindAction(SprintAction, ETriggerEvent::Completed, this, &AExoPlayerController::PlayerStopSprint); EnhancedInputComponent->BindAction(ShootAction, ETriggerEvent::Started, this, &AExoPlayerController::PlayerShoot); EnhancedInputComponent->BindAction(AimAction, ETriggerEvent::Started, this, &AExoPlayerController::PlayerAim); EnhancedInputComponent->BindAction(MeleAction, ETriggerEvent::Started, this, &AExoPlayerController::PlayerMeleAttack); @@ -90,7 +95,7 @@ void AExoPlayerController::Interact() void AExoPlayerController::PlayerJump() { - + PlayerCharacter->Jump(); } void AExoPlayerController::PlayerDodge() @@ -99,6 +104,8 @@ void AExoPlayerController::PlayerDodge() if (PlayerCharacter->GetCharacterMovement()->IsFalling()) return; + if (PlayerCharacter->GetCharacterMovement()->IsCrouching()) return; + if (!CanDodge) return; CanDodge = false; @@ -109,9 +116,9 @@ void AExoPlayerController::PlayerDodge() if (DodgeDirection.IsNearlyZero()) DodgeDirection = PlayerCharacter->GetActorForwardVector(); - PlayerCharacter->LaunchCharacter(DodgeDirection * DodgeForce, true, true); + PlayerCharacter->LaunchCharacter(DodgeDirection * PlayerCharacter->DodgeForce, true, true); - GetWorldTimerManager().SetTimer(DodgeCooldownTimer, this, &AExoPlayerController::ResetDodge, DodgeCooldown, false); + GetWorldTimerManager().SetTimer(DodgeCooldownTimer, this, &AExoPlayerController::ResetDodge, PlayerCharacter->DodgeCooldown, false); } void AExoPlayerController::ResetDodge() @@ -119,14 +126,28 @@ void AExoPlayerController::ResetDodge() CanDodge = true; } -void AExoPlayerController::PlayerCrouch() +void AExoPlayerController::PlayerStartCrouch() { - + PlayerCharacter->Crouch(); } -void AExoPlayerController::PlayerSprint() +void AExoPlayerController::PlayerStopCrouch() { + PlayerCharacter->UnCrouch(); +} +void AExoPlayerController::PlayerStartSprint() +{ + UE_LOG(LogTemp, Display, TEXT("Start sprint")); + + PlayerCharacter->GetCharacterMovement()->MaxWalkSpeed = PlayerCharacter->SprintSpeed; +} + +void AExoPlayerController::PlayerStopSprint() +{ + UE_LOG(LogTemp, Display, TEXT("Stop sprint")); + + PlayerCharacter->GetCharacterMovement()->MaxWalkSpeed = PlayerCharacter->WalkSpeed; } void AExoPlayerController::PlayerShoot() diff --git a/Source/Exo/Public/Characters/ExoPlayerCharacter.h b/Source/Exo/Public/Characters/ExoPlayerCharacter.h index d694ee0..a4e0388 100644 --- a/Source/Exo/Public/Characters/ExoPlayerCharacter.h +++ b/Source/Exo/Public/Characters/ExoPlayerCharacter.h @@ -14,6 +14,18 @@ class EXO_API AExoPlayerCharacter : public AExoCharacterBase public: AExoPlayerCharacter(); + UPROPERTY(EditAnywhere, Category = "Dodge Properties") + float DodgeForce = 5000.f; + + UPROPERTY(EditAnywhere, Category = "Dodge Properties") + float DodgeCooldown = 2.f; + + UPROPERTY(EditAnywhere, Category = "Movement Properties") + float WalkSpeed = 600.0f; + + UPROPERTY(EditAnywhere, Category = "Movement Properties") + float SprintSpeed = 1500.0f; + protected: virtual void BeginPlay() override; diff --git a/Source/Exo/Public/Player/ExoPlayerController.h b/Source/Exo/Public/Player/ExoPlayerController.h index 93b3025..e2000e2 100644 --- a/Source/Exo/Public/Player/ExoPlayerController.h +++ b/Source/Exo/Public/Player/ExoPlayerController.h @@ -48,10 +48,16 @@ protected: void ResetDodge(); UFUNCTION(BlueprintCallable, Category = "Input") - void PlayerCrouch(); // LCtrl\C\X + void PlayerStartCrouch(); // LCtrl\C\X UFUNCTION(BlueprintCallable, Category = "Input") - void PlayerSprint(); // LShift(Hold) + void PlayerStopCrouch(); // LCtrl\C\X + + UFUNCTION(BlueprintCallable, Category = "Input") + void PlayerStartSprint(); // LShift(Hold) + + UFUNCTION(BlueprintCallable, Category = "Input") + void PlayerStopSprint(); UFUNCTION(BlueprintCallable, Category = "Input") void PlayerShoot(); // LPM @@ -96,12 +102,6 @@ protected: UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Dodge Properties") FTimerHandle DodgeCooldownTimer; - - UPROPERTY(EditAnywhere, Category = "Dodge Properties") - float DodgeForce = 5000.f; // Move to player if future for better modification - - UPROPERTY(EditAnywhere, Category = "Dodge Properties") - float DodgeCooldown = 2.f; // Move to player too. UPROPERTY(EditAnywhere, Category = "Dodge Properties") bool CanDodge = true;