프로그래밍79 [Game] 객체의 회전 part.2 탄막 슈팅에서 탄막은 특정 객체에 종속되어 있다. 내가 쏘는 탄이라면 내가 조종하는 플레이어블 캐릭터 객체에, 적이 날린 탄막이라면 적 객체에 종속이 되어 위치가 정해진다. 이런 경우 객체가 회전을 하면 탄도 회전을 한다. 만약, 객체가 회전하지 않고 종속된 탄이 회전하여 모양을 만들어 내려면 어떻게 해야 할까. 객체의 위치는 행렬로 정해진다. 좌표를 나타내는 행렬에 S(Scale), R(Rotation), T(Transformation)이라는 행렬들이 곱해져 위치가 정해진다. 여기에 객체를 늘 따라가기 위해서 종속된 객체에는 부모(편의상 부모 자식 관계로 칭함) 객체의 R * T 행렬이 추가로 곱해진다. 이렇기 때문에 부모가 이동을 하면 자식도 이동을 하는 것이다. 그렇다면 부모는 회전하지 않고 자식만.. 2022. 12. 22. [Game] 객체의 회전 맵 위에 캐릭터 A가 있다고 가정하자. 이 캐릭터의 회전은 어떻게 이뤄질까? 캐릭터, 즉 객체에는 각각 저마다의 공간이 있다. 이 공간을 로컬공간(Local Space)라고 하고, 이 로컬공간의 좌표를 로컬좌표(Local Matrix)라 한다. 이 캐릭터가 맵 위에 나오게 되면 맵의 좌표를 따라야 한다. 캐릭터의 좌표는 계속 변동이 되지만 그 좌표는 변하지 않는 맵의 좌표 위에서 변하는 것이다. 이 변하지 않는 공간을 우리는 월드공간(World Space)라고 하고 이 월드공간의 좌표를 바로 월드좌표(World Matrix)라고 한다. 캐릭터는 이 월드좌표 위의 특정 좌표에 존재하며 동시에 자신의 좌표를 가진다. 만약 이 캐릭터를 움직이려고 하는데, 캐릭터의 축과 월드좌표의 축이 다를 경우엔 어떻게 될까.. 2022. 12. 19. [Game] 변환행렬 컴퓨터 화면은 좌표로 이뤄져 있다. 특정 도형은 화면의 좌표 위에 존재하게 되고 만약 사각형이 있다고 가정할 경우 좌표에 사각형의 네 각에 해당하는 정점(Vertex)가 찍혀 있을 것이다. 2차원 화면에서 이 네 개의 vertex는 x와 y의 좌표값을 가진다. 만약 이 도형을 움직이고, 크기를 키우거나 줄이고, 회전을 시키고 싶다면 어떻게 해야 할까. 단순히 좌표값을 바꾸면 된다. x 축을 기준으로 + 100을 이동하고 싶다면 네 정점의 좌표값의 x 좌표를 + 100 하게 되면 + 100만큼 이동한 것으로 보인다. 하지만 하나하나 이렇게 좌표를 입력하기 보단, 행렬을 이용하여 입력되는 값에 맞춰 자동으로 계산이 되게 하는 것이 훨씬 더 깔끔하게 적용이 된다. 이때 이용하는 것이 바로 변환행렬이다. 변환행.. 2022. 12. 15. [Programing] 정적 & 동적 라이브러리 동적(Dynamic) & 정적(Static) 라이브러리 이 두 가지 개념을 이해하기 전에 우선 라이브러리에 대한 개념을 확인해야 한다. 라이브러리(Library)란? 소프트웨어를 만들 때 쓰이는 클래스나 서브루틴[1] 들의 모임을 가리키는 말이다. 다른 프로그램들과 링크되기 위해 존재하는, 하나 이상의 서브루틴이나 함수(Function)들의 집합 파일이다. 또한, 링크될 수 있도록 보통 컴파일 된 형태인 목적코드(Object Code)[2] 형태로 존재한다. 미리 컴파일 되어 있어서 컴파일 시간도 단축된다. 라이브러리의 목적 라이브러리는 코드 재사용을 위해 조직화된 초창기 방법 중의 하나이며 많은 다른 프로그램들에서 사용할 수 있도록 운영체제나 소프트웨어 개발 환경제공자들에 의해 제공되는 경우가 많다. .. 2022. 12. 15. 이전 1 ··· 15 16 17 18 19 20 다음