Atani 퀴즈
프로그래머스 코테 연습
C++
다형성
다형성(polymorphism)은 하나의 이름이 여러 형태로 동작할 수 있는 능력을 의미한다.
크게 컴파일 시점(정적)과 실행 시점(동적) 다향성으로 나뉜다.
같은 함수나 연산자가 상황에 따라 다르게 동작하거나, 부모 클래스 포인터로 자식 클래스 객체를 다룰 수 있게 해준다.
다형성이 중요한 이유

다형성(polymorphism)은 하나의 이름이 여러 형태로 동작할 수 있는 능력을 의미한다.
크게 컴파일 시점(정적)과 실행 시점(동적) 다향성으로 나뉜다.
같은 함수나 연산자가 상황에 따라 다르게 동작하거나, 부모 클래스 포인터로 자식 클래스 객체를 다룰 수 있게 해준다.
다형성이 중요한 이유
유지보수에 용이한 코드를 만들기 위해 C++ 에서는 객체 지향 프로그래밍(OOP)을 한다.
C++ 에서 클래스는 객체 지향 프로그래밍의 핵심 개념으로, 속성(데이터)과 행동을 하나로 묶어 표현하는 툴이라고 할 수 있다.
클래스는 객체를 만들기 위한 설계도이다. 객체가 가져야 할 속성과 행동을 정의해 놓은 틀이다.
클래스 자체는 실체가 아니고, 클래스를 기반으로 객체가 생성되어야 프로그램 안에서 실제로 동작한다.
자동차로 비유하면, 자동차는 바퀴 4개, 엔진 1개, 핸들 1개를 가진다 라는 속성과 빠르게 달릴 수 있고, 천천히 갈 수도 있고, 멈출 수도 있다. 라는 행동이 정의된 설계가 있을 것이고, 이러한설계도(클래스)를 가지고 만들어진 자동차를 객체 라고 한다.
#include <iostream> // i는 input, o는 output
// cpp에서 제공하는 헤더파일은 <> 를 통해 불러오고, 사용자 정의 헤더 파일은 "" 를 통해 불러온다.
using namespace std;
int main() { // cpp이 시작되면 main을 제일 먼저 찾고 실행한다. (시작점/진입점)
cout << "Hello, World!" << endl; // using namespace std; 가 없으면 std::cout 이런식으로 작성해야한다.
// cout → console output
// endl → end line (개행 - 한 줄 띄기)
return 0;
}
문 블루프린트에 Box Collision 컴포넌트로 캐릭터가 문 앞에 다가왔을때 트리거될 영역을 만들어준다.
시작시에 현재 위치 값을 담을 StartLocation 과 얼만큼 이동할지에 대한 TargetLocation 을 설정해준다.
액터와 캐릭터간의 충돌에는 ActorBeginOverlap 이벤트와 ActorEndOverlap 이벤트가 있다.
액터 배치 → Basic → 트리거 박스를 레벨에 배치해준다.
트리거 박스의 노란색 영역에 들어갔을때, 오버랩 이벤트가 발생하게 한다.
주저리 주저리..
강의 시간에 놓친 부분들은 녹화본을 통해 다시 한 번!
근데 여기 오른쪽에 텍스트 클릭하면 해당 시간으로 영상 돌아가는거 너무 불편...
이틀 전인 화요일부터 라이브세션 내용을 따라가기가 힘들어서 VOD 강의 진도 나가는 것을 멈추고(아직 강의 3개중 하나도 다 못봤다..) 복습만 계속 했다. TIL도 제대로 작성 안했다. TIL까지 작성할 시간이 부족했지만 지금은 잠깐의 여유가 생겼기에 작성하려고 한다~
언리얼 엔진에서 WASD 움직임, 마우스 회전, 간단한 애니메이션(Idle→Walk→Run) 적용하기, 액터 움직이기 등 기초적인 것 위주로, 구현하기에 익숙해질 때 까지 삭제하고 만들고 삭제하고 만들고 무한 반복했다. 익숙해지기 시작하니까 이제 라이브세션도 어느정도 무리없이 잘 따라갔다.
1. WASD 이동
2. 마우스 Rotation
3. 점프
4. 움직임 애니메이션
5. Timeline + Lerp를 이용한 차량 움직이기
3일차 TIL(회고록..)에 적었던 이 5가지.. 계~속 반복했다. 나름 효과는 좋은듯?
오늘은 지금까지 Blueprint 라이브세션을 들으면서 만들었던 프로젝트 전체 리뷰와, C언어 라이브세션 내용을 담을 것이다.
아마 내일부터는 다시 강의 진도를 나갈 예정!?
User Interface - Widget Blueprint
Canvas Panel
4K 해상도로 만들어야한다. 큰 걸 기준으로 만드는게 가장 안정적이다.
Progress Bar
Anchors를 지정하지 않으면 의도하지 않게 배치될 수 있다. 항상 무언가를 배치할때 Anchors 먼저 지정해줘야한다.
Text
Size To Content - 글자의 사이즈에 맞게 칸을 조절해준다.
총알: 과 is Variable이 체크된 총알개수를 넣어준다.
점점 늘거나 줄때, 그 값을 사용하기 위해 Timeline 을 사용한다.
조준모드가 될때 카메라 값이 커져야 하기 때문에 Add Float Track을 사용해준다.
Length(시간)은 0.25로 설정
우클릭해서 Add key 2개를 설정, 하나는 Time, Value 0, 다른 하나는 0.25, 1로 설정
Camera 컴포넌트의 Field Of View의 값을 컨트롤해줄 변수 DefaultFOV(Float / 기본값 90), AimFOV(Float / 기본값 50) 생성
EventGraph에서 해당 이미지처럼 노드들을 연결해주면 우클릭시에 조준/일반모드 전환이 가능해진다.
BP_Character → Auto Posses Player → Player 0 설정
Mesh Detail