WIN32API FrameWork/한단계씩 직접 구현
09. Vector2 구조체
hyrule
2022. 5. 16. 18:00
https://hyrule.tistory.com/111
*** 공부 방법 ***
1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처
hyrule.tistory.com
Vector2.h
헤더를 새로 생성하고, math.h를 포함시킨다.
struct Vector2
벡터값을 계산할 구조체인 Vector2를 만든다.
이 구조체는 float 타입 x, y 변수(좌표)를 들고 있다.
생성자는 3가지로 오버로딩한다.
- 아무 인자를 넣지 않으면 0,0으로 초기화
- float 타입 2개를 받아 각각 x, y를 초기화
- 같은 Vector2 타입을 받아 똑같이 초기화(복사 생성자)
연산자 재정의도 해준다.(할거 많음)
- 대입연산자
- 같은 Vector2 구조체를 받아 대입
- float 변수 하나를 받아 x, y 둘다 변수의 값으로 대입
- 비교 연산자
- 사칙연산과 할당 연산자(+=, -= 등등)
- Vector2, float, int 등 어떤 자료형이 들어와도 더해지도록
- 빌드할 때 경고창이 뜨지 않도록 형변환을 잘 해주자
math.h에서 제공하는 삼각함수 관련 메소드들은 radian 값으로만 받으므로,
코딩 편의를 위해 다음 내용도 추가해준다.
* 힌트 - 180 degree = PI radian라는 점을 이용해서 변환 공식을 만들자
- Vector2 헤더에 PI값을 상수로 선언 - 소숫점 6자리까지
- GameInfo.h에서 아래의 함수를 선언하고, GameInfo.cpp를 만들어 정의
- 인자로 받은 Radian -> Degree 변환 전역함수
- 인자로 받은 Degree -> Radian 변환 전역함수
Vector2 헤더 작업이 완료되었으면 GameInfo 헤더에 포함시켜 주자.