-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPlayerPawn.cpp
68 lines (55 loc) · 1.78 KB
/
PlayerPawn.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "PlayerPawn.h"
// Sets default values
APlayerPawn::APlayerPawn()
{
// Set this pawn to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
camera = CreateDefaultSubobject<UCameraComponent>(TEXT("Camera Component"));
playerSphere = CreateDefaultSubobject<USphereComponent>(TEXT("Sphere collision"));
RootComponent = playerSphere;
camera->SetupAttachment(RootComponent);
// Setup Variables Constructor
minSpeed = 1000.0f;
maxSpeed = 4000.0f;
forwardSpeed = minSpeed;
bIsDead = false;
mouseSensitivity = 1000.0f;
}
void APlayerPawn::MoveUp(float Value)
{
movementInput.Y = Value;
}
void APlayerPawn::MoveRight(float Value)
{
movementInput.X = Value;
}
// Called when the game starts or when spawned
void APlayerPawn::BeginPlay()
{
Super::BeginPlay();
}
// Called every frame
void APlayerPawn::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
if (!bIsDead) {
if (forwardSpeed < maxSpeed){
forwardSpeed += 20.0f * DeltaTime;
}
AddMovementInput(GetActorUpVector(), mouseSensitivity * movementInput.Y);
AddMovementInput(GetActorRightVector(), mouseSensitivity * movementInput.X);
AddActorLocalOffset(ConsumeMovementInputVector() * DeltaTime, true);
AddActorLocalOffset(FVector(1.0f, 0.0f, 0.0f) * forwardSpeed * DeltaTime, true);
scoreSpeed = (forwardSpeed - minSpeed) / (maxSpeed - minSpeed);
}
if (bIsDead) {
forwardSpeed = minSpeed;
}
}
// Called to bind functionality to input
void APlayerPawn::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
Super::SetupPlayerInputComponent(PlayerInputComponent);
PlayerInputComponent->BindAxis(TEXT("MoveUp"), this, &APlayerPawn::MoveUp);
PlayerInputComponent->BindAxis(TEXT("MoveRight"), this, &APlayerPawn::MoveRight);
}