미사이클 클래스 만든다.
선언부는
이렇게, 구현부는
이따위로 해준다.
이번 시간에 눈여겨 봐야 할점이 매크로 재활용 하는 부분이다.
처음에 KEY_CHECK 하나만 있었다면
player의 if문이
if (KEY_CHECK(KEY::W, KEY_STATE::HOLD))
이렇게 적어 주었어야 했는데,
매크로를 재활용 하는 느낌으로다가 이렇게 해준다면 이제는
이렇게 줄일 수 있다. (빨간줄은 현재 매크로 인식이 느려서 그런거같다...)
Player.cpp에서 일단 이렇게 구현을 다 해주자.
Player Object가 space눌렸을 때 해당함수 호출하면서 위치랑, 크기, 방향 다 설정해준 상태로 만들어진다.
이제 만들었으니까 Scene에다가 넣어주어야한다.
현재씬은 누구한테서 얻어 올 수 있나?
'현재씬'에서부터 얻어 올수 있다.
CScene에서 현재 씬 얻어 올 수 있는 함수 열어주고 얻어 온다음에 AddObject한다.
현재 updare, render어디서 하고있나?
CScene에서 호출하는 중이다. 이 함수들은 다시 objects의 update, render호출하는중이다.
개개인별의 오브젝트가 update, render를 호출할 수 있도록 모든 오브젝트들은 CObject를 상속받도록 만들었고
CObject의 update, render함수가 override할 수 있게 만들었다.
원래 다른 오브젝트들은 render함수를 상속받아서 사용하지 않고 부모의 render함수를 상속받아서 사용했는데
미사일의 경우 동그랗게 그려지길 원하니까
override하여 동그라미로 출력해주도록 하자. (Ellipse 함수 사용)
ㅇㅋ.
AddObject가 부모 포인터 가르키는데
여기 missile주소 넣을 수 있는 이유? => 미사일은 CObject를 상속받았기 때문에
객체의 제일 앞 주소가 부모포인터로 되어있고 가상함수 테이블 주소도 들어있을 것이다.
=> 이게 '다형성'
자원을 공유를 해서 사용할 것이다.
대표적인 리소스가 '이미지', '사운드' 정도
기초수학은 '필수'이다.
삼각함수
호도법(라디안), 원주율
벡터
스칼라
내적, 외적
공간도형
벡터 (x, y, z), 공간, 직선, 평변
행렬
역행렬, 규칙
거 = 속 * 시
가속도
등가속도
마찰계수