전체 글 216

[게임 프로그래머 입문 올인원] 게임수학 : 벡터 (95강)

A. 벡터 1. 벡터의 기초 a. 스칼라와 벡터 1) 스칼라 : 🌟 고정되어 변하지 않는 값 2) 벡터 : 크기와 방향을 가지고 있음 벡터는 시작점이 없고 크기+방향만 가지고 있음 중력, 바람 등 방향을 나타내야하면 거의 벡터를 사용함 항상 목적지에서 시작점을빼면 값이 나온다! b. 벡터의 특징 1) 벡터 곱셈 2) 벡터끼리의 덧셈과 뺄셈 c. 벡터의 법칙 1) 교환법칙 2) 결합법칙 d. 벡터의 크기 구하기 위에서 Vab는 5였는데 이 5의 값을 1로 만든다는 소리 즉, 방향만 남기고 싶은 것 Vab를 x라고 한다면, x를 1로 만들기 위해서는 1/x를 곱해야 함 즉, 정규화를 하면 원래 가지고 있던 Vab값에 1/x을 각 x, y값에 곱해준것과 같음 💙 사용할 때 크기는 플레이어끼리 거리를 계산할 때..

[게임 프로그래머 입문 올인원] 게임 수학 : 삼각함수와 포신 구현하기 (94강)

A. 삼각함수 1. 삼각함수 기초 a. 삼각함수를 알아야 하는 이유 b. 삼각함수 기초 : 피타고라스 정리 c. 단위 원 (unit circle) 각도를 재는 두가지 방법이 있음 각도법, 호도법 2. 게임에 삼각함수 더하기 a. 슈팅게임에 적용하기 여기서 더해줘야 하는 x(cos),y(sin) 으로 값을 구하기 b. 포신의 정보 생성하기 포신은 Player가 가지고 있으니 Player에서 작성 c. 포신 출력과 색상 변경하기 d. 각도에 따라 미사일 나가기 미사일이 각도에 따라서 나가야 하기 때문에 미사일에 정보를 추가해주기 출처 : https://www.inflearn.com/course/%EA%B2%8C%EC%9E%84-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8..

[게임 프로그래머 입문 올인원] Windows API 입문 : 리소스 매니저 (93강)

B. 리소스 매니저 1. 리소스 매니저 만들기 a. 리소스 파일 만들기 b. LineMesh 생성하기 📁 04.Resources > 📁 Game > 📄 LineMesh.cpp c. ResourceMan ager 생성하기 무언가를 들고있을 용도로 사용하는거라 update는 필요없음 d. Game.cpp 코드에 Resource 추가하기 이 코드까지 실행하면 ResourceManager가 mesh코드를 잘 받아오는 걸 알 수 있음 e. Player가 ResourceManager을 사용할 수 있게 하기 출처 : https://www.inflearn.com/course/%EA%B2%8C%EC%9E%84-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8-%EC%9E%85%EB%AC%..

[게임 프로그래머 입문 올인원] Windows API 입문 : 리소스(92강)

A. 리소스 1. 리소스 실습하기 플레이어가 원모양이고 너무 지루하니 소스를 가져와서 넣어보자 맵툴은 나중에 I'm GY를 사용할것임 a. EditScene 생성하기 그림을 그리는 툴인 EditScene을 생성 b.EditScene 테스트하기 위에서 생성한 EditScene을 테스트하기 위해 개발환경을 바꿔준다 위에서 생성한 툴을 가지고 비행기를 만들어서 리소스로 넣어줄 것임 c. 파일 입출력 실습하기 : fstream 다양한 파일 입출력 기능이 있지만 이번엔 을 사용해 실습 1) 저장 2) 로드 위와같이 저장할 떄 기준점을 어디다가 맞춰야 하는지 문제가 생기는데 대부분 플레이어의 발을 기준으로 맞추게 됨 여기서는 가장 큰 값과 작은값의 중간을 맞춰서 해볼예정 3) 기준점 좌표 만들기 a) 저장 b) 로..

[게임 프로그래머 입문 올인원] Windows API 입문 : 오브젝트 설계 #1, #2(90, 91강)

A. 오브젝트 설계 #1 1. 오브젝트 틀 설계 a. Object 생성하기 Scene처럼 관리할 Object를 생성해줌 Object는 가장 최상위 객체 📁 03.Object > 📄 ObjectType.h b. 자식 클래스 작성하기 : Player 위에서 오브젝트 타입으로 정의해준 애들을 만들기 📁 03.Object > 📁 Game > 📄 Player c. 자식 클래스 작성하기 : Missile 위에서 작성한 Player 코드처럼 동일하게 missile 코드도 작성해주고 (monster도 동일) 📁 03.Object > 📁 Game > 📄 Missile.cpp d. 자식 클래스 작성하기 : Monster 📁 03.Object > 📁 Game > 📄 Monster.cpp 2. 기능 구현하기 a. GameSc..

[게임 프로그래머 입문 올인원] Windows API 입문 : 더블 버퍼링 (89강)

A. 더블 버퍼링 1. 더블 버퍼링의 기초 a. 더블 버퍼링이란? 🌟 화면을 업데이트할 때 발생할 수 있는 깜빡임을 줄여 부드럽고 끊김 없는 화면 표시를 가능하게 함 주로 컴퓨터 게임에서 많이 사용 보다 복잡한 그래픽 처리 기술과 결합되어 사용(CPU 가속) 될 수 있음 b. 진행 과정 두 개의 버퍼(메모리 영역)를 사용하여 작동 화면에 현재 표시되는 내용을 담고 있고, 다른 하나는 새로운 내용을 그릴 때 사용 화면을 갱신할 때는 새로운 내용이 이전 내용을 덮어 끊김없는 화면 전환을 함 2. 더블 버퍼링 구현하기 a. Game 구현하기 📁 00.MainGame > 📄 Game.h 📁 00.MainGame > 📄 Game.cpp 출처 : https://www.inflearn.com/course/%EA%B2..

[게임 프로그래머 입문 올인원] Windows API 입문 : Scene과 SceneManager (88강)

A. Scene과 SceneManager 로비창인지 게임창인지 구분하기 위한 scene 플레이어와 몬스터는 object로 구분해서 만듦 ➡ 지금은 엔진 / 컨텐츠 섞어서 만들지만 나중엔 구분하게 됨 1. 기본 틀 잡기 a. Scene, object 생성하기 Scene은 최상위 객체, 화면의 모든 처리나 물체의 제어를 담당함 📁 02.Scene > 📄 Scene.h 📁 02.Scene > 📄 Scene.cpp b. SceneManager 생성하기 모든 오브젝트들을 관리하는 역할 📁 99.Headers > 📄 Enums.h 📁 01.Manager > 📄 SceneManager.h 💙 SceneManager가 Scene을 하나씩 들고 있는 이유 영화촬영처럼 다양한 화면을 촬영해야 한다면 화면에 들어가는 물체와..

[게임 프로그래머 입문 올인원] Windows API 입문 : 프레임워크 제작 (87강)

A. 프레임워크 제작 1. 프레임 워크 기초 제작 a. 메인 루프 수정 저번 강의에서 설명했듯, GetMessage만으로는 모든 일 처리를 하는데 무리가 있음 따라서 메인 루프를 수정해줘야 함 HTML 삽입 미리보기할 수 없는 소스 MSG msg = {}; // 3) 기본 메시지 루프입니다: while (msg.message != WM_QUIT) //창을 끄면 바로 프로그램이 꺼지게 { //윈도우 메시지 큐에서 다음 메시지를 제거하지 않고 해당 메시지를 확인하는 데 사용 if (::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) //메시지가 있을때가 많지 않음 { ::TranslateMessage(&msg); //추가적인 이벤트를 만들어줌 ::DispatchMessage(&ms..

[게임 프로그래머 입문 올인원] Windows API 입문 : 기본 템플릿 분석 (86강)

A. 기본 템플릿 분석 Windows API는 미니 엔진을 만드는 단계라고 생각하면 됨! 1. 새 프로젝트 만들기 a. 새 프로젝트 생성하기 2. main함수 a. 윈도우 창 정보 등록 여기까지의 코드 HTML 삽입 미리보기할 수 없는 소스 // // 함수: MyRegisterClass() // // 용도: 창 클래스를 등록합니다. // ATOM MyRegisterClass(HINSTANCE hInstance) { WNDCLASSEXW wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex..