게임을 개발하다보면 두 점의 각도를 구해야 할 때가 있다. 시야 시스템을 만든다고 가정하자. 내 캐릭터는 정면을 기준으로 특정 각도에 있는 적 캐릭터만 인지할 수 있으며 이외의 각도에서는 적 캐릭터를 볼 수 없는 시스템을 구현할 때 두 점(내 캐릭터 위치, 적 캐릭터 위치)의 각도를 계산할 필요가 있다. 그렇다면 두 점의 각도는 어떻게 구할 수 있을까? function direction(x1: number, y1: number, x2: number, y2: number) { return (180 / Math.PI) * (Math.atan2(x1 - x2, y1 - y2); } 두 점의 각도는 삼각함수 중 하나인 탄젠트의 역수, 아크탄젠트를 통해 구할 수 있다. 삼각함수란? 삼각함수는 주로 삼각비를 계산하..
수학은 게임에서 정말 많이 사용된다. 2D 게임이든, 3D게임이든 어떤 가상 공간을 표현하려면 좌표계가 있어야 하고 이 좌표계에 따라 위치와 방향을 표현할 수 있다. 두 점 사이의 거리를 계산할 때는 어떻게 해야 할까? // 1차원 좌표계 function distance(x1: number, x2: number) { return Math.abs(x1 - x2); } 1차원 좌표계에서는 꽤 간단하다. 내 위치에서 상대 위치를 뺀 값을 절대값으로 반환하면 나와 상대방의 거리를 계산할 수 있다. 절대값이란? 수의 크기를 나타내는 개념으로 수의 차이를 계산하거나, 거리를 계산하거나, 함수의 정의를 양수로 제한하는 등 다양하게 많이 사용되는 개념이다. 예시를 들면, X가 0인 수평 좌표계에서 5의 위치는 X로부터..