전체 글(33)
-
C++ 콘솔 프로젝트
3월 20일 ~ 28일 동안 C++을 이용한 콘솔게임 프로젝트를 진행했다.이렇게 빨리 프로젝트를 하게 될지 몰라서 당황..콘솔게임 제작은 1,2학년때 간단하게 과제로 해보기도 했고, 제한된 출력창에서 할 수 있는건 일반적으로 텍스트 기반 게임이나, ASCII Art를 이용한 2D 게임을 많이 한다. 그래서 남들이 많이 안하는 걸하고 싶기도 했고, 뭔가 콘솔 창으로 할 수 있는 것중에 난이도가 있는 프로젝트를 하고 싶었다.그래서 선택한 것이 Ray Casting을 활용한 3D표현이였다. 콘솔 프로젝트를 한다고 했을때 가장 먼저 머릿속에 떠오른 것이였고, 기회가 되면 한번 공부해보고 싶다는 생각도 전에 했었는데 때 마침 기회가 왔다고 생각했다. 이 오래된 기법을 사용한 게임에는 울펜슈타인3D, 둠 등이 대표..
2025.04.10 -
4.3, 4.4 Class 상속, 다형성
클래스 상속 시 접근지정자는 자식 클래스에서 어떻게 사용할 것인지에 대한 것이다. private는 오직 자기만 사용 가능 상속도 불가 private로 사용해야하는데 상속도 해야합니다.. 그래서 protected 사용 private, protected 모두 외부로 부터 은닉을 위한 것, 차이는 상속 가능 여부만 있음. 생성자, 소멸자를 호출해서 객체를 생성 파괴하는 것이 아니다. 객체가 생성되고, 소멸 될때, 생성자 소멸자가 호출 되는 것임. 객체 생성, 소멸시, 모든 부모 클래스 생성자, 소멸자 호출됨 123321 순서임 Scope 지정으로 확인가능. 어떤 클래스를 상속만하고 객체로는 쓰지 못하게 막으려면? 1. 순수 가상클래스로 만들기 2. Protected로 생성자 막기 - 본인의 생성자 자체는 ..
2025.04.03 -
4.2 Unity light, Material, Shader
unity lighting window -> Rendering ->light explorer 전체 라이트 object들을 관리 할 수 있음 Texture도 모델의 정점에 매칭되어 씌워짐 텍스쳐 맵핑은 어떤 정점에, 얼만나 많은 정점에 맞출 것인가 조명, 재질, 등 다양한 정보를 담고 있는 것 -> material. 프로그램마다 material의 정보는 다름 Material -> Surface Shader 연산을 통해 객체의 조명과 재질을 표현하는 코드. 특수효과적용에 사용 계산이 가미 된다는 것이 특징 High Level Shader Language 로 작성
2025.04.03 -
4.1 Class
Class 사용자가 속성과 행동을 정의하는 사용자 정의 자료형. 객체 Object들의 관계를 위한 언어 객체는 행동이 정의 될 수 있따. 데이터와 행동 스택은 정적할당, (함수 스택은 그냥 함수 호출의 모양) 코드와 데이터영역 각 영역을 차지하게 되는 것들 class/struct의 크기는 어떻게 결정되는가 sizeof = 차지하는 메모리 this 도 포인터다(명시하지 않으면 생략 this ->) 코드는 하나고 멤버함수도 코드영역에 있음 객체가 늘어난다고 같이 늘어나지 않음. 그래서 어느객체가 참조해서 호출했는지 알아야함 멤버함수는 유일하고 멤버변수는 각 객체별로 데이터 영역에 할당됨 new 는 생성자 자동 호출 (생성자도 결국 함수임 오버로딩 가능 근데 오버로딩 하려면 기본 생성자 반드시 명시, 안하..
2025.04.03 -
3. 삼각함수, 회전을 위한 수학
회전하면 딱 떠오르는 도형은 원이다. 회전은 원의 궤적을 따라 움직이고 이를 이해하고 구현하기 위해서는원과 밀접하게 연결되어 있는 삼각함수에 대해서 알아야 한다. 삼각함수의 어떤 특징 때문에 우리는 회전에서 삼각함수를 사용하게 되는 것인가. 1. 삼각비와 삼각함수삼각비 말그대로 삼각형에서 나타나는 비율을 의미한다. 비율이란 절대적인 크기와 관계 없이 유지 되는 어떠한 비율에 대한 이야기이다.직각 삼각형에서 대표적인 삼각비에는 sin, cos, tan가 존재한다. 기준각 θ를 두고 c는 빗변, a는 밑변 b는 높이라 한다. 물론 θ 의 위치에 따라 변 cb의 사잇각이 기준이 되면 이또한 바뀐다.다음과 같이 정의 된다.이때 빗변이 1인 직각삼각형을 좌표평면상에 두면 이는 반지름의 길이가 1인 원의 궤적을 ..
2025.04.01 -
2. 벡터
현대의 대부분의 게임은 가상의 공간을 표현한다.2D 게임은 좌표평면이라 부르는 2차원 데카르트 좌표계를 구성한다.3D는 좌표공간인 3차원 데카르트 좌표계에서 표현된다. 게임은 현실을 모방한다. 정확히 말하면 현실에서 이루어지는 물리법칙과 현상을 모방하고자 한다. 여기에 게임적 허용을 더해 표현한다.그렇기에 공간에서의 움직임을 컴퓨터의 연산을 통해 가상 세계에서 구현해야 한다.그렇기에 벡터는 가장 중요하고 기본이 되는 개념이다. 1. 벡터 공간과 벡터좌표평면은 두 실수 (x,y)를 결합하여 만들어진다. 실수이기에 체의 구조를 띠는 연산 성질을 갖는다.이를 기반으로 새로운 공리를 사용하여 새로운 집합을 규정하고 새로운 연산체계를 만들어 평면에서의 움직임을 표현하고자 했다.벡터 공간은 두 가지 기본연산이 존재..
2025.03.31