코드카타-2016년

#include <string>
#include <vector>
using namespace std;
string solution(int a, int b)
{
vector<string> days = {"FRI","SAT","SUN","MON","TUE","WED","THU"};
vector<int> monthDays = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int offset = 0;
for (int i = 0; i < a - 1; i++)
{
offset += monthDays[i];
}
offset += (b-1);
return days[offset % 7];
}
오늘의 분반 수업
더보기
// Fill out your copyright notice in the Description page of Project Settings.
#include "PlayerCharacterBase.h"
#include "GameFramework/SpringArmComponent.h"
#include "Camera/CameraComponent.h"
#include "EnhancedInputComponent.h"
#include "InputMappingContext.h"
#include "EnhancedInputSubsystems.h"
#include "Engine/Engine.h"
#include "Kismet/KismetMathLibrary.h"
#include "GameFramework/CharacterMovementComponent.h"
// Sets default values
APlayerCharacterBase::APlayerCharacterBase()
{
// Set this character to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
InitializationPlayerMesh();
InitializationPlayerCamera();
InitializationInput();
InitializationWeaponMesh();
static ConstructorHelpers::FClassFinder<UAnimInstance>AnimInstance(TEXT("/Game/DarkSoulZ/Blueprints/Player/ABP_Player.ABP_Player_C"));
if (AnimInstance.Class)
{
GetMesh()->SetAnimInstanceClass(AnimInstance.Class);
}
}
// Called when the game starts or when spawned
void APlayerCharacterBase::BeginPlay()
{
Super::BeginPlay();
if (APlayerController* PlayerController = Cast<APlayerController>(GetController()))
{
if (UEnhancedInputLocalPlayerSubsystem* SubSystem = ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem> (PlayerController->GetLocalPlayer()))
{
SubSystem->AddMappingContext(DefaultContext, 0);
}
}
GetCharacterMovement()->MaxWalkSpeed = PlayerMoveSpeed;
}
// Called every frame
void APlayerCharacterBase::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
// Called to bind functionality to input
void APlayerCharacterBase::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
Super::SetupPlayerInputComponent(PlayerInputComponent);
UEnhancedInputComponent* EnhancedInputComponent = Cast <UEnhancedInputComponent>(PlayerInputComponent);
EnhancedInputComponent->BindAction(MoveAction, ETriggerEvent::Triggered, this, &APlayerCharacterBase::Move);
EnhancedInputComponent->BindAction(LookAction, ETriggerEvent::Triggered, this, &APlayerCharacterBase::Look);
EnhancedInputComponent->BindAction(AttackAction, ETriggerEvent::Started, this, &APlayerCharacterBase::Attack);
}
void APlayerCharacterBase::InitializationPlayerMesh()
{
ConstructorHelpers::FObjectFinder<USkeletalMesh>
PlayerSkeletalMesh(TEXT("/Script/Engine.SkeletalMesh'/Game/DarkSoulZ/Asset/Player/Vefects/Stylized_Female_Character_Vexa/SK/Vefects_Vexa.Vefects_Vexa'"));
if (PlayerSkeletalMesh.Succeeded())
{
GetMesh()->SetSkeletalMesh(PlayerSkeletalMesh.Object);
GetMesh()->SetWorldLocationAndRotation(FVector(0, 0, -90), FRotator(0, -90, 0));
}
}
void APlayerCharacterBase::InitializationWeaponMesh()
{
weaponStaticMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("long_sword"));
weaponStaticMesh->SetupAttachment(RootComponent);
static ConstructorHelpers::FObjectFinder<UStaticMesh> weapon(TEXT("/Script/Engine.StaticMesh'/Game/DarkSoulZ/Asset/Weapons/Medieval_Long_Sword/long_sword/StaticMeshes/long_sword.long_sword'"));
if (weapon.Succeeded())
{
weaponStaticMesh->SetStaticMesh(weapon.Object);
}
weaponStaticMesh->AttachToComponent(GetMesh(), FAttachmentTransformRules::KeepRelativeTransform, TEXT("weapon_Socket"));
}
void APlayerCharacterBase::InitializationPlayerCamera()
{
bUseControllerRotationYaw = false;
UCharacterMovementComponent* MoveComp = GetCharacterMovement();
if (MoveComp)
{
MoveComp->bOrientRotationToMovement = true;
}
SpringArm = CreateDefaultSubobject<USpringArmComponent>(TEXT("SpringArm"));
if (SpringArm)
{
SpringArm->SetupAttachment(RootComponent);
SpringArm->SetWorldLocation(FVector(0, 0, 0));
SpringArm->TargetArmLength = 350;
SpringArm->SocketOffset = FVector(100, 0, 50);
SpringArm->bUsePawnControlRotation = true;
}
Camera = CreateDefaultSubobject<UCameraComponent>(TEXT("Camera"));
if (Camera)
{
Camera->SetupAttachment(SpringArm);
}
}
void APlayerCharacterBase::InitializationInput()
{
static ConstructorHelpers::FObjectFinder<UInputMappingContext>InputContext(TEXT("/Script/EnhancedInput.InputMappingContext'/Game/DarkSoulZ/Input/IMC_Default.IMC_Default'"));
if (InputContext.Object != nullptr)
{
DefaultContext = InputContext.Object;
}
static ConstructorHelpers::FObjectFinder<UInputAction>InputMove(TEXT("/Script/EnhancedInput.InputAction'/Game/DarkSoulZ/Input/Actions/IA_Move.IA_Move'"));
if (InputMove.Object != nullptr)
{
MoveAction = InputMove.Object;
}
static ConstructorHelpers::FObjectFinder<UInputAction>InputLook(TEXT("/Script/EnhancedInput.InputAction'/Game/DarkSoulZ/Input/Actions/IA_Look.IA_Look'"));
if (InputLook.Object != nullptr)
{
LookAction = InputLook.Object;
}
static ConstructorHelpers::FObjectFinder<UInputAction>InputAttack(TEXT("/Script/EnhancedInput.InputAction'/Game/DarkSoulZ/Input/Actions/IA_Attack.IA_Attack'"));
if (InputAttack.Object != nullptr)
{
AttackAction = InputAttack.Object;
}
}
void APlayerCharacterBase::Move(const FInputActionValue& Value)
{
const FVector2D Movement = Value.Get<FVector2D>(); //X는 좌우 , Y는 앞뒤
const FRotator ControlRot = Controller ? Controller->GetControlRotation() : FRotator::ZeroRotator;
const FRotator YawOnly(0.f, ControlRot.Yaw, 0.f);
const FVector Forward = UKismetMathLibrary::GetForwardVector(YawOnly);
const FVector Right = UKismetMathLibrary::GetRightVector(YawOnly);
AddMovementInput(Forward, Movement.Y);
AddMovementInput(Right, Movement.X);
}
void APlayerCharacterBase::Look(const FInputActionValue& Value)
{
FVector2D LookAxisVector = Value.Get<FVector2D>();
AddControllerYawInput(LookAxisVector.X * GetWorld()->DeltaTimeSeconds * mouseSpeed);
AddControllerPitchInput(LookAxisVector.Y * GetWorld()->DeltaRealTimeSeconds * mouseSpeed);
}
void APlayerCharacterBase::Attack()
{
GEngine->AddOnScreenDebugMessage(-1, 3.0f, FColor::Red, TEXT("Attack"));
UAnimInstance* AnimInstance = GetMesh()->GetAnimInstance();
if (AttackMontage)
{
if (AttackMontage)
{
AnimInstance->Montage_Play(AttackMontage);
}
}
}
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Character.h"
#include "InputActionValue.h"
#include "PlayerCharacterBase.generated.h"
UCLASS()
class MAKE_GAME_API APlayerCharacterBase : public ACharacter
{
GENERATED_BODY()
public:
// Sets default values for this character's properties
APlayerCharacterBase();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
// Called to bind functionality to input
virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;
protected:
UPROPERTY(EditAnywhere)
class USpringArmComponent* SpringArm;
UPROPERTY(EditAnywhere)
class UCameraComponent* Camera;
private:
void InitializationPlayerMesh();
void InitializationWeaponMesh();
void InitializationPlayerCamera();
void InitializationInput();
void Move(const FInputActionValue& Value);
void Look(const FInputActionValue& Value);
void Attack();
private:
UPROPERTY(VisibleAnywhere, Category = "Input")
class UInputMappingContext* DefaultContext;
UPROPERTY(VisibleAnywhere, Category = "Input")
class UInputAction* MoveAction;
UPROPERTY(VisibleAnywhere, Category = "Input")
class UInputAction* LookAction;
UPROPERTY(VisibleAnywhere, Category = "Input")
class UInputAction* AttackAction;
public:
UPROPERTY(EditAnywhere)
float mouseSpeed = 30.0f;
UPROPERTY(EditAnywhere)
float PlayerMoveSpeed = 350.0f;
private:
UPROPERTY(EditAnywhere)
class UStaticMeshComponent* weaponStaticMesh;
private:
UPROPERTY(EditAnywhere)
UAnimMontage* AttackMontage;//애니메이션 찾기
};
팀 프로젝트 근황
8번 과제에 분반 수업에서 배운 걸 녹여내는 중인데, 오류가 생겨서 쉽지는 않다.
성장에 도움이 될것이라고 생각한다.
'TIL' 카테고리의 다른 글
| 2/25일자 TIL (0) | 2026.02.25 |
|---|---|
| 2/24일자 TIL (0) | 2026.02.24 |
| 2/20일자 TIL (0) | 2026.02.20 |
| 2/19일자 TIL (0) | 2026.02.19 |
| 2/13일자 TIL (0) | 2026.02.13 |