🎮 컴퓨터 과학 216

[게임 프로그래머 입문 올인원] 2D게임 프레임워크 : 코드 구조 설계 (103강)

A. 코드 구조 설계여태까지는 스프라이트를 렌더링해서 DevScene에서 출력하고 있었음  따라서 플레이어를 만들어서, 플레이어의 이미지를 위와같이 출력한다고 하면플레이어 안에서 따로 매번 만들어줘야 함  1. 언리얼 방식a. 액터 생성하기 액터 : 씬에 배치할 수 있는 모든 오브젝트  여태까지 사용하던 Object와 비슷한 내용    b. SpriteActor를 생성하기Actor는 씬에서 배치될수 있는 모든 오브젝트를 의미함즉, 모든 오브젝트는 Sprite가 없을 수 있음  따라서 SpriteActor를 따로 생성해서 Actor를 상속받게 해 렌더링이 필요한 부분만 따로 만들어 준다    c. 개발씬에서 액터를 추가   d. 배경화면 렌더링하기위와같은 방식으로 배경화면을 렌더링    💥 구현 고민위에..

[게임 프로그래머 입문 올인원] 2D게임 프레임워크 설계 : 스프라이트 (102강)

A. 2D게임 프레임워크 설계 1. 코드 정리하기 포트리스 모작한 코드를 그대로 재사용해서 만드는데 기존 코드 공부한걸 삭제하고 싶지않아서 GameCoding3라는 이름으로 하나 생성했다 a. 프로젝트 복사하기 [VSC] 프로젝트를 복사해 새 프로젝트로 만들기 A. 프로젝트를 복사해 새 프로젝트로 만들기 기존에 사용하던 코드를 지키고 싶어서 새로운 곳에서 시작할 예정 출처 : https://dltndltn.tistory.com/3 현재 프로젝트의 내용을 복사해서 다른 프로젝트 monamu.tistory.com b. 코드 정리하기 💙 obj 파일? 따라서 위 폴더를 삭제해도 다시 생성되기 때문에 삭제해준다! c. 폴더 정리하기 Resources : 리소스 관리하는 폴더 Binaries : 빌드한 결과물을 ..

[VSC] 프로젝트를 복사해 새 프로젝트로 만들기

A. 프로젝트를 복사해 새 프로젝트로 만들기 기존에 사용하던 코드를 지키고 싶어서 새로운 곳에서 시작할 예정 💥 주의사항 위와같이 코드를 복사하면 실질적으로 원래 있던 파일 전체를 복사하는게 아닌, 위 솔루션 탐색기에서 인지하고 있는 파일들만 복사가 된다 👉 따라서 따로 txt파일이나 외부 목록에서 받아주고 있는 이미지 파일이 있다면 따로 챙겨줘야 한다! 출처 : https://dltndltn.tistory.com/3 현재 프로젝트의 내용을 복사해서 다른 프로젝트의 바탕으로 쓰기 (수정 - 몇 움짤이 재생되지 않는 현상이 있을 수 있습니다 그럴땐 이미지 클릭하시면 재생이 됩니다. 앞으로 이런 오류가 계속 발생하면 움짤 사용을 자제할 것입니다. ) 제목이 무슨 뜻인지 잘 dltndltn.tistory.co..

[게임 프로그래머 입문 올인원] 게임수학 : 포트리스 모작 #3 (100, 101강)

C. 포트리스 모작 #3 6. 포신과 총알 구현하기 w, s키를 누르면 포신의 각도가 변경되도록 구현해볼것임 a. 플레이어 키값에 따른 값 설정하기 clamp : 어떤영역에 포함되기 원할 때 사용하는 함수 b. 포신 값에 따라 UI 설정하기 c. 총알 만들기 1 ) 기본 총알을 만들기 2) 위 총알을 생성해주기 d. 총알 특성 구현하기 1) 스피드 구현하기 여기서 총알이 소멸되면, 턴을 종료시켜야하는데 턴을 종료시키는 코드는 ChangePlayerTurn에 있음 ➡ 따라서 현재 씬을 가져오는 코드를 생성해줘야함 2) 포물선 구현하기 👉 먼저 속도와 가속도에 대해서 공부하기 [게임 프로그래머 입문 올인원] 게임수학 : 속도와 가속도 (101강) A. 속도와 가속도 : 물리 1. 속도와 가속도의 기초 a. ..

[게임 프로그래머 입문 올인원] 게임수학 : 속도와 가속도 (101강)

A. 속도와 가속도 : 물리 1. 속도와 가속도의 기초 a. 속도와 가속도란? 👉 근데 게임에서는 여기까지 알 필요는 없고 그냥 속도와 가속도의 공식만 알고있으면 됨 출처 :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%B8-%EC%98%AC%EC%9D%B8%EC%9B%90-rookiss#curriculum [게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버 - 어디부터 시작할지 막막한 게임 프로그래밍 입문자를 위한 All-In-One 커리큘럼입니다. C++, 자료구조/알고리즘,..

[게임 프로그래머 입문 올인원] 게임수학 : 포트리스 모작 #2 (100강)

B. 포트리스 모작 #2 5. 플레이어 턴제 만들기 위에서 만든 플레이어 특성으로 턴제를 구현 플레이어 아이디, 플레이어 턴을 구현해주고 추가적으로 포신의 각도도 추가해줌 a. 플레이어 턴제 생성하기 b. 플레이어 UI 생성하기 각 플레이어가 가지고 있어야 하는 UI를 넣어주기 🔎 UI와 구현에 대한 고민하기 👉 먼저 UIManager의 싱글톤인 특성을 가지고 SetRemainTime을 고쳐 시간을 관리해보자 (결론적으로 말하면 문제점이 있음) c. 게임씬에서 시간과 턴제 구현하기 플레이어턴은 0번부터 시작인데 1인이유는 아래에 나옴! 이렇게 위에서는 UI에서 데이터랑 관련된 코드를 들고있는데 규모가 커지면 문제가 크게 생김 UI는 UI를 위해 정보를 들고있어야 하지 원본 데이터와 비슷한 느낌으로 사용하..

[게임 프로그래머 입문 올인원] 게임수학 : 포트리스 모작 #1 (99강)

A. 포트리스 모작 #1 1. 포트리스 뼈대잡기 a. UIManager 및 리소스 추가하기 UIManager은 UI의 세부적인 좌표 엔진내용 그려줘야하는 UI의 좌표를 다 잡아줘서 설정해주는 용도 b. 수치를 나타내는 Values.h 파일 추가하기 c. ResourceManager 수정하기 d.Fortress 게임 뼈대잡기 MenuScene : 게임 시작하자마자 보여줄 화면 FortressScene : 게임화면 둘 다 Scene을 상속받아서 구현 e. SceneManager에 Scene 추가해주기 2. 씬 구현하기 a. MenuScene 구현하기 ➡ 온라인 게임이면 여기서 네트워크 통신이 들어가게 됨 b. FortressScene 구현하기 💙 UIManager처럼 UI를 Manager로 사용하는게 좋을까..

[게임 프로그래머 입문 올인원] 게임수학 : 역삼각함수 (98강)

A. 역삼각함수 1. 역삼각함수 기초 a. 함수와 역함수 역함수는 항상 존재하지 않고, 1:1 대응이여야지만 존재한다 b. 삼각함수와 역삼각함수 이렇게 동일한 값이 무한으로 나와서 역함수가 어렵지만 범위를 강제로 지정해서 사용할 수 있음 즉, cos의 val가 -1~1이라고 하면 각도는 0~180 동일하게 sin, tan의 val가 -1~1이라고 하면 각도는 -90~90 원하는 벨류를 넣어줘도 원하는 값이 튀어나온다는 보장이 없음 🌟 역삼각함수에서 튀어나온 각도의 범위는 0~180 / -90~90라는 점을 꼭 기억해야 함 2. 게임에 역삼각함수 더하기 백스텝 : 뒤에서 타격하면 가산점수처럼 각도계산을 해서 다른 점수를 줘야 할 때 a. 몬스터 방향 정보 추가하기 b. 몬스터 생성 및 방향 만들기 여기서 ..

[게임 프로그래머 입문 올인원] 게임수학 : 외적 (97강)

A. 외적 1. 외적의 기초 a. 외적이란? 외적의 값은 벡터 (내적처럼 스칼라가 아님) 2D에서는 외적이라는 개념이 존재하지 않지만 사용함 (z축 값을 0이라고 전제) 내적은 반대로 해도 값이 그대로이지만 외적은 반대로 하게되면 (위에서는 bXa) 음수값이 나옴 = 즉 시계방향/ 반시계 방향에 따라 k의 방향이 바뀌는게 핵심! b. 외적 응용 예시 즉, P가 A와 B에 들어와있는지 체크하기 위해 사용할 수 있음 2. 게임에 외적 더하기 a.Vector에 외적 추가하기 b. 몬스터 수정하기 Monster.cpp에서 몬스터 업데이트 하는 (내적) 코드는 날려주기 c. 마우스 포지션과 삼각형 외적하기 코드를 조금 더 다듬으면 아래와 같이 됨 HTML 삽입 미리보기할 수 없는 소스 #include "pch.h..

[게임 프로그래머 입문 올인원] 게임수학 : 내적 (96강)

A. 내적 1. 내적의 기초 a. 내적이란? (dot product) 🌟V1*V2에 cos = 스칼라 곱이라고도 함 V1 * V2인데 곱하기가 아니고 그냥 내적이라는 뜻 내적의 결과물은 방향에 대한 개념은 날아가고 크기만 남음 = 스칼라 b. 내적 응용하기 1) 내적이 0인경우 : 직각 2) 내적이 >0인경우 : 90도 보다 작다 3) 내적이