Unreal 게임 개발 과정 TIL

Today's I Learning

본캠프 TIL

04.22 Unreal 본캠프 3일차) 변수와 연산자/ FPS 총 쏘기 및 UI

Sunlight__ 2026. 4. 22. 21:12

 

오늘 C언어 강의는 변수와 연산자에 대해 배웠다.

 

9. 변수

 

 - 변수(Variable) <-> 상수(Constant) [중요 샘플 코드] : 변할 수 있는 수

자료형 변수명 = 값;

 

 - 읽히는 대로 "자료형 변수명 = 값" 이 아니라 뒤에서 부터 해석해야 한다. 

  " 값을 변수에 대입해라 "   (굉장히 중요하다)

 

Ex010901) 자료형 변수명 = 값; [중요 샘플 코드]

빡지를 써서 외움

 

 - unsigned 키워드와 signed 키워드 : 부호 없는 V.s 부호있는

 unsigned를 자료형 아ㅓㅍ에 붙이면 음수는 표현 불가능하다. 대신 양수 부분이 2배 늘어난다. (%u)

ex) -128 ~ 127 => (unsigned) 0 ~ 255

 모든 자료형은 사실 앞에 unsigned 키워드가 생략되어 있다.

Sign == 부호 ( +, - )

 

 

- 오버플로우(OverFlow) : 자료형이 표현 가능한 수를 넘어서는 경우.

 그릇에 물을 너무 많이 따라서 넘쳐 흐르는 것과 같다.

 (간단하게 허용치 이상으로 값이 넘치면 제일 처음 수로 돌아간다.)

 

OverFlow의 도식화

 

Ex010902) 오버플로우

지정된 값보다 벗어나게 되자 그 반대 값이 출력되는 모습

 

 - 직접 값을 하나하나 입력해가며 만들어 보았더니 이해가 조금 되는 것 같았다.

 

 - 인코딩(Encoding) Vs. 디코딩(Decoding) : 형태 A에서 형태 B로 변환하는 것을 인코딩이락로 한다. 반대로 형태 B에서 A로 변환하는 것을 디코딩이라고 한다.

 

- ASCII(American Standarded Code for Information Interchange)

 : 문자 형태의 데이터와 숫자 형태의 데이터 사이의 인코딩 규약 중 하나. 여러 인코딩 규약이 있으나, 그 중 가장 쉽고 대표적인 규약.

어쨋든 컴퓨터에 값이 저장되기 위해서는 숫자 형태여야 한다는 점을 기억한다.

 - 주로 A a 0 을 사용한다.

 A : %d = 65, %o = 101, %h = 41 

 a : %d = 97, %o = 141, %h = 61

 0 : %d = 48, %o = 60, %h = 30

https://en.cppreference.com/cpp/language/ascii

 

ASCII Chart - cppreference.com

The following chart contains all 128 ASCII decimal (dec), octal (oct), hexadecimal (hex) and character (ch) codes. dec oct hex ch dec oct hex ch dec oct hex ch dec oct hex ch 0 0 00 NUL (null) 32 40 20 (space) 64 100 40 @ 96 140 60 ` 1 1 01 SOH (start of h

en.cppreference.com

 

Ex011001) ASCII

ASCII 차트에 맞게 %c에 해당하는 값과 %d의 해당하는 값이 다르게 나타나는 모습

11. 입력 기초

 

 - scanf()

 : 키보드로부터 데이터를 입력받을 수 있게끔 해주는 함수.

 

Ex011101) scanf() 함수 [중요 샘플 코드]

 

 - 실행하였을 때 현재 아무런 값도 입력받지 못한 상황이므로 어떠한 값을 입력한다면 그것을 출력하게 된다.

 

이렇게 챕터 1이 종료 되었고 챕터 2 연산자로 넘어가게 되었다.

 

1. 연산자와 피연산자, 산술 연산자, 복합 대입 연산자, 값식문

 

 - 연산자란, 사칙연산(+, -, *, /)이다.

 

 - 연산자(Operator) Vs. 피연산자(Operand)

 : 피연산자와 함께 사용되어서 계산 결과를 만들어 내는 기호이다.

ex) 5 + 2 에서 5와 2를 피연산자, + 를 연산자라고 한다.

 

 - 연산자 우선순위(Operator Priority)와 결합법칙

 : 덧셈과 곱셈이 뒤셖여 있는 식에서 우리는 묵시적으로 곱셈을 먼저 계산한다.

 이처럼 연산자들 간에는 우선순위가 존재한다. 

 만약 덧셈만 있는 식에서는 좌에서 우로 계산한다는 결합법칙도 있다.

 

https://learn.microsoft.com/en-us/cpp/c-language/precedence-and-order-of-evaluation?view=msvc-170#:~:text=precedence%20and%20associativity.-,Precedence%20and%20associativity%20of%20C%20operators,-Expand%20table

 

Precedence and order of evaluation

Learn more about: Precedence and order of evaluation

learn.microsoft.com

 - 연산자 우선 순위와 결합법칙 표를 볼 수 있는 사이트.

 

 - 산술 연산자의 종류

 : int 자료형끼리의 나눗셈은 그 결과도 int.

 float 자료형끼리의 나눗셈은 그 결과도 float임에 주의해야 한다.

 또, C언어에서는 float 자료형의 나머지 연산은 불가능하다.

 

 - 복합 대입 연산자

 : 산술 연산과 대입 연산이 함께 계산되는 연산자.

ex) 복합 대입 연산자 *=은 곱셈 연산 후 대입된다.

 

 - 값(Value), 식(Expression), 문(Statment)

 ➡️ 값 : 값은 이전 시간에 언급한 리터럴과 같다.

ex) 2147483647, 3.141592, "Hello, World!", ...

 ➡️ : 식은 피연산자와 연산자로 이루어져서 값으로 귀결되는 것들이다.

ex) 3 +5, 5.43 - 9.2, ...

 ➡️ : 문은 컴퓨터가 수행할 명령어이다.

ex) int num = 5;    // 선언문

      ir (7 == num)  // 조건문, 7 == num은 조건식.\

 

 - Feed-back [중요 샘플 코드] (굉장히 중요함)

int s = 0;
s = s +10;        // s += 10 과 같다. 현재 변수 = 이전 변수값 + 10;
                        // s = s +10 뿐만이 아니라, s -= 10 이나 s %= 10과 같이 다른 사칙연산도 피드백 코드 가능하다.
int CurrentPlayerExp = 2147483646

// 빨간 달팽이(Exp 10) 사살!

CurrentPlayerExp = CurrentPlayerExp + MonsterExp;                                                             

 

이것으로 C언어 강의를 끝내고 FPS 게임 만들기를 하였다.

 

오늘은 C언어 TIL 작성과 빡지에 많은 힘을 쏟은 관계로 빠르게 무엇을 하였는지만 정리하고 넘어가겠다.

 - 라인 트레이서를 활용하여 총알을 쏠 수 있게 만들었다.

 - Hit Actor 맞은 부분에 총알이 튀는 효과 삽입

 - 총열에서 화염이 나오게 효과 삽임

 - HP 바, 총알 갯수, 크로스 헤어 UI 삽입

 - 총을 쐇을 때 총알 갯수 변경 및 갯수 체크하여 0발 일 때 사격 불가능

 

중간 플레이 영상을 보고 마무리 하겠다.

https://youtu.be/-OP9mq6s1_8

 

 

 - C언어를 배우는게 늘어나며 조금씩 벅차오는게 느껴지지만 블루프린트로 게임을 직접 만들며 점점 움직이고 내가 아는 게임처럼 되어가는 모습을 보니 재밌고 뿌듯했다. 아직 3일차 밖에 안됐는데 약한 소리 하지 말자.