현재로서는 8x8 2 차원 배열 (그리드라고 부르며)이 포함 된 보드 객체가 있으며 조각은 int로 표시됩니다 1/2, 나는 조각으로 왕을 표시하는 비트 연산을 사용합니다.캔버스에 구현 된 Checkers 보드 게임에 적합한 모델
보드의 렌더링과 캔버스에서 사용자의 클릭 등을 처리하는 Checkers 객체도 있습니다. Checkers 객체에는 Board 객체의 그리드를 반복하는 Draw 메서드가 있습니다. 보드. 따라서 Draw()를 호출 할 때마다 보드가 다시 그려지고 조각 위치가 다시 계산됩니다.
이제 애니메이션을 추가하고 싶습니다. 내가 달성 할 수 있었던 한 가지 방법은 가장 최근의 이동 (소스 및 대상 XY 좌표)을 추적하고 설정된 간격으로 Draw()
루틴을 실행하고 Draw()
루틴을 사용하여 그리려는 부분은 이전 이동의 대상 변수에 기록 된 좌표와 동일하며 그에 따라 조각의 위치가 조정됩니다.
이것이 작동하는 동안, 나는 그것이 지저분 해지기 쉬운 것을 발견한다.
내가 실험 한 또 다른 모델은 정수 대신 조각에 개체를 사용하는 것입니다. 조각에 픽셀 X 좌표를 기록하고 각 이동 (애니메이션 루프) 후에 업데이트 할 수있었습니다. 이것 역시 나쁘고, 보드 객체가 렌더링 로직에 묶이는 방식을 좋아하지 않았습니다.
이 분야에서 경험이있는 사람이라면 누구든지 더 나은 방법을 제안 할 수 있습니까?
서버 측 (NodeJS)에서 동일한 보드 클래스를 사용하므로 클라이언트와 서버에서 보드 클래스를 동일하게 유지하여 클라이언트가 이동하고 유효성을 검사하도록하는 것이 좋습니다. 서버에 의해 절대 거부되지 않습니다.