태크놀로지

[게임수학] 직선의 방정식을 이용한 2D 라인태우기 본문

개인공부

[게임수학] 직선의 방정식을 이용한 2D 라인태우기

원택 2021. 12. 31. 14:50

직선의 방정식을 사용한, 2D게임에서의 이동방식


플레이어를 직선에 태우기

 

2D 게임 내의 배경이미지에서, 계단 혹은 낭떠러지 같은 맵 이동에 관하여, 직선의 방정식을 사용하여 구현하였다.

원리는 간단하다. 캐릭터의 X 위치값을 사용하여, 직선의 방정식에 대입하면 캐릭터의 높이값을 얻을 수 있다.

 

1. 기울기가 m이고, 한 점(x1, y1)을 지나는 직선의 방정식

* y - y1 = m(x-x1)

 

2. 두점을 사용하여, 직선의 방정식을 구해보자

* 라인위에 존재하는 두점의 위치값을 알고있다면, 직선의 기울기를 구할수있다.

* 위에 공식에 대입하면, 직선의 방정식을 얻을수있다.


여러개의 직선이 있다면, 어떤 직선을 타야하는가

만약 이러한 직선이 배치되어있다고 가정하였을때, 플레이어가 점프시 어떤 직선을 타야하는지가 의문일것이다. 필자의 경우 플레이어와 직선의 수선의 거리를 비교하여 타야할 라인을 채택하였다.

 

> 예외사항 - 플레이어보다 위에있는 라인일경우

수선의 거리는 위에 직선과 가깝지만, 게임에서는 위에 라인으로 순간이동 되면 안된다. 따라서, 플레이어보다 높이 있는 라인들은 비교대상에서 제외하였다.