본문 바로가기

전체 글

(21)
체스말을 잡기 저번에 만든 것으로 폰부터 퀸까지의 말을 만들고 배치했다. 다음으로 말을 잡는 법을 만들어보자. 지금까지 기능으로는 상대의 말이 내 경로에 있을 경우 자신의 말과 구분하지 못하고 막혀버린다. 그리고 폰의 경우 앞으로 전진하고 대각선으로 잡는 독특한 행마법을 가지고 있어서 행마처리를 일관적으로 만들기 어렵다. 그래서 보드에 해당칸이 비어있는지를 알려주는 IsCoordAvailable()에 더불어 해당 칸이 잡을 수 있는 칸인지를 알려주는 IsCoordCatchable()을 추가하고, 이동 가능한 칸을 계산하는 MoveableCoord()에서 말마다 각각 계산하기로 했다. 퀸, 룩, 비숍은 이동 가능한 방향으로 나아가면서 막혀있는지 확인한다. 막혀있으면 잡을 수 있는 칸인지 확인하고 다음 방향으로 넘어간다...
체스말을 움직이기 최근에 체스가 재밌어서, 재미삼아 체스와 비슷한 것을 만들어보기로 했다. 처음에는 가장 기본적인 말을 움직이는 기능을 만들었다. 우선 스프라이트를 배치해 8x8 크기의 보드를 만든다. 이때 칸의 좌표는 칸의 중심을 가리키게 했다. 체스 판을 담당하는 Board스크립트를 만들고 칸의 개수와 한 칸의 크기를 나타내는 상수를 만든다. 앞으로 칸 위의 위치는 Board의 CoordinateToWorld()를 통해 얻게 하여 다른 좌표와 혼동되는 일이 없게 한다. public class Board : MonoBehaviour { private static readonly int xLength = 8; private static readonly int yLength = 8; private static readonl..
2020.09.04 블로그 개설