4/21 (c++문법,FPS게임 만들기)

2026. 4. 21. 17:05·본캠프

오늘은 c++언어 실시간 강의 cp1중간까지 했고 내일까지 cp3까지 예습을 할것입니다.

 

배운내용

#include <stdio.h> // stdio는 공구통 이름. #include는 공구통을 포함시키라는 명령어.

int main(void)

{

printf("Hello, world!"); // stdio라는 공구통 안에 든 printf()라는 망치를 사용하는 예시.

return 0;

}

**중요코드입니다

 

탈출 문자열

\n 개행(New line)
\t 탭(Tap)
\’ 따옴표 출력
\” 쌍따옴표 출력
\\ 역슬래시 출력
%% % 출력

 

서식지정자

printf()함수 혹은 scanf()함수와 같은 입출력 합수들과 쓰여 양식에 맞게 입출력 할 수 있도록 도와주는 지정자 입니다.

 

서식지정자의 종류

1. %d: decimal의 약자. 10진수로 대체됩니다.

2. %o: octal의 약자. 8진수로 대체됩니다. ex) 9(10) <-> 11(8)

3. %x: hexadecimal의 약자. x는 소문자, X는 대문자로 대체됩니다. ex) 17(10) <-> 11(16)

4. %u: unsigned의 약자. 양수로 대체됩니다.

5. %c: character의 약자. 문자로 대체됩니다

6. %s: string의 약자. 문자열로 대체됩니다.

7. %f: floating point의 약자. single precision.

8. %if: double precision floating point.

 

3245 * 2342의 계산 결과를 화면에 출력시키기 위해 printf(”Result: %d”, 3245 * 2342)라고도 적을 수 있습니다.

복잡한 수식을 빠른 시간안에 계산하고 그 결과를 원하는 형식으로 보기 위함입니다.

 

예습내용

 

리터럴(Literal)

소수코드에 적힌 값 그 자체를 뜻

 

자료형(Type)

 

저장될 데이터의 크기와 해석 방법에 대한 정보.

자료형 크기 == 표현 가능한 수 서식 지정자
char 1 byte. -(2^7) ~ (2^7) - 1
[-128 ~ 127]
%c or %hhd
short int 2 byte. -(2^31) ~ (2^31) - 1
[-32768 ~ 32767]
%hd
int
[기본 정수 자료형]
4 byte. -(2^31) ~ (2^31) - 1
[-2147483648 ~ 2147483647]
%d or %i
long 4 byte or 8 byte %ld
long long 8 byte -(2^63) ~ (2^63) - 1 %lld
float 4 byte 유효 자리수 6~7자리
[부호:1bit, 지수:8bit, 가수:23bit]
%f
double
[기본 실수 자료형]
8 byte 유효 자리수 15~16자리
[부호:1bit, 지수:11bit, 가수:52bit]
%if
long double 8 byte 이 %Lf

 

변수 <-> 상수

자료형 변수명 = 값;

 

중요코드

#include <stdio.h> int main(void)

{

// 자료형 변수명 = 값; int Num = 2147483647; // 선언과 동시에 초기화

double PI; // 선언

 

printf("Num = %d\n", Num);

 

PI = 3.141592;

printf("PI = %lf\n", PI);

 

return 0;

}

 

unsigned 키워드와 signed 키워드

부호없는 vs 부호있는

unsigned를 자료형 앞에 붙히면 음수는 표현 불가능 

=> 그대신 양수 부분이 2배 늘어납니다.

서식 지정자로는 %u를 쓰면 됩니다.

 

오버 플로우:

자료형이 표현가능한 수를 넘어서는 경우

 

 

ASCII

문자 형태의 데이터와 숫자 형태의 데이터 사이의 인코딩 규약 중 하나.

여러 인코딩 규약이 있으나, 그중 가장 쉽고 대표적인 규약.

 

scanf()

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

 

#define _CRT_SECURE_NO_WARNINGS

    // scanf() 함수를 쓸때는 이걸 정의해줘야 합니다.

    // 다만 scanf() 함수는 stdio.h에 정의되어 있으므로, stdio.h 파일 인클루드 전에 정의해야 합니다.

#include <stdio.h>

int main(void)

{

int Num;

scanf("%d", &Num); // "Num에다가(&) %d 형식으로 입력받아라."

printf("%d", Num); // "Num을 %d 형식으로 출력해라."

return 0;

}

 

연산자와 피연산자

5+2에서 5,2가 피연산자 +가 연산자

 

**int자료형끼리 결과는 int

float 자료형끼리 결과는 float임을 주의

 

복합 대입 연산자

mul *= 3; // 동작자체는 mul = mul * 3; 코드와 똑같습니다.

 

증감 연산자, 논리 연산자, 비교 연산자

증가/감소의 줄임말. 단항의 피연산자를 가지는게 특징.

ex) ++Num; 증감 연산자에는 전치 증감 연산자와 후치 증감 연산자가 있습니다.

 

ex)

++N 바로1증가

N++ 다음 줄에 1증가

 

논리연산자 

피연산자를 참 혹은 거짓으로 평가한 후에 논리 연산을 수행합니다.

계산된 결과값도 참 혹은 거짓입니다. 즉, 불대수(boolean) 연산자.

 

논리연산자의 종류

논리 곱 연산자(&&), 논리 합 연산자(||), 논리 반전 연산자(!)

 

논리연사자의 꿀팁에도 알아봤습니다.

이거 진짜 꿀팁입니다 . 밑 예시 처럼 생각하면 진리표를 외울 필요가 없습니다.

7 && 0; // == 1 * 0 == 0
-7 || 0; // == 1 + 0 == 1

 

Short-Circuit

&& 연산자에서 앞 쪽 피연산자가 false라면 뒤 쪽은 평가하지 않고 곧바로 false로 귀결됩니다.

|| 연산자에서 앞 쪽 피연산자가 true라면 뒤 쪽은 평가하지 않고 곧바로 true로 귀결됩니다.

&&는 곱셈입니다. 앞이 0이면 뒤는 뭐가 와도 그 결과가 false입니다.

그래서 뒤쪽은 평가하지도 않고 0입니다.

|| 연산도 덧셈이니, 앞이 1이면 뒤는 무슨 수가 와도 그 결과가 true입니다.

 

형변환 연산자

자료형 A에서 자료형 B로 변환 시켜주는 연산자.

명시적 형변환이라고도 부릅니다

ex)

5 / 2; // == 
(float)5 / 2; // == 5.0f / 2 == 2.5f

 

삼항 연산자

피연산자로 세 개의 항을 갖는 연산자.

조건문 if-else의 대용 가능.

 

 

조건문

 

단순 if문

#include <stdio.h>

int main(void)
{
int Num = 102;

if (Num < 102)
{
printf("Num < 102");
}

return 0;
}

 

if-else

조건식이 참 혹은 거짓, 모든 경우를 처리 할 수 있습니다.

#include <stdio.h>

int main()
{
int Num = 102;

if (Num < 105)
{
printf("Num < 105");
}
else
{
printf("105 <= Num");
}

return 0;
}

 

if-else if-else문

#include <stdio.h>

int main()
{
int Num = 102;

if (Num < 105)
{
printf("Num < 105");
}
else if (Num < 110)
{
printf("105 <= Num && Num < 110");
}
else
{
printf("110 <= Num");
}

return 0;
}

 

중첩 if문

#include <stdio.h>

int main()
{
int Num = 102;

if (Num < 105)
{
printf("Num < 105\n");

if (102 < Num)
{
printf("102 < Num && Num < 105");
}
else
{
printf("Num <= 102");
}
}

return 0;
}

 

switch-case문

switch-case문은 if-else if-else문으로 치환 가능합니다.

그럼에도 switch-case문을 사용하는 이유는 가독성 때문입니다.

반대로 if-else if-else문은 switch-case문으로 치환 불가능할 때가 있습니다.

특히 if-else if-else문의 조건식이 범위를 다루는 경우 불가능합니다.

#include <stdio.h>

int main()
{
int Num = 101;

switch (Num)
{
case 100:
printf("Num == 100");
break;

case 101:
case 102:
printf("Num == 101 || Num == 102");
break;

default:
printf("default");
break;
}

return 0;
}

 

여기까지 예습했습니다.

 

다음은 FPS게임 만들기 실습입니다.

이동과 팔 애니메이션 줌 구현
맵핑 연습

우리가 게임에서 사용하는 wasd와 마우스를 돌려 화면을 움직이는 커맨드를 맵핑하였습니다.

 

맵핑 블루프린트
이동,화면돌림 블루프린트
줌 블루프린트

 

까지 하였습니다.

'본캠프' 카테고리의 다른 글

4/24(코드카타,C++실시간강의,FPS강의)  (1) 2026.04.24
발표자료  (1) 2026.04.23
4/23(코드 카타,FPS실시간강의)  (0) 2026.04.23
4/22 (코드카타,FPS게임,C++실시간 강의cp4)  (0) 2026.04.22
4/20  (1) 2026.04.20
'본캠프' 카테고리의 다른 글
  • 발표자료
  • 4/23(코드 카타,FPS실시간강의)
  • 4/22 (코드카타,FPS게임,C++실시간 강의cp4)
  • 4/20
백구
백구
게임개발 공부블로그 입니다.
  • 백구
    백구 게임개발 스터디
    백구
  • 전체
    오늘
    어제
    • 분류 전체보기 (21) N
      • 사전캠프 (5)
      • 본캠프 (16) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
백구
4/21 (c++문법,FPS게임 만들기)
상단으로

티스토리툴바