250307

lililllilillll·2025년 3월 7일

개발 일지

목록 보기
103/350

✅ What I did today


  • Project BCA


🎮 Project BCA


Completing main game

Player piece movement

  • 플레이어의 기물 이동도 순간이동이 아니라 움직임이 발생하도록 만들기
  • 이전과 같이 Command와 이동 관할 클래스를 만들고, PieceCommandManager에 요청
  • 로봇 팔 이동 애니메이션과 달리 DOJump()를 이용하여 코드도 간결하고 훨씬 깔끔하게 이동
  • MoveTo() 이후에 아무런 유예나 조건 감지 없이 바로 ai한테 요청을 보내버려서, 그 후 받은 응답을 바로 처리하면 아직 플레이어의 턴인 상태에서 로봇 팔이 아니라 플레이어의 이동 방식이 큐에 들어가버림.
    • 원래는 수 정보를 SendPlayerMoveToStockfish()의 매개변수에 동봉해서 함수를 호출했는데, 이게 플레이어의 수를 기존 수에 포함하여 보내던 레거시 코드여서 굳이 보낼 필요도 없었음.
    • AITurnState()의 EnterState()에서 SendPlayerMoveToStocfish()를 호출하는 것으로 변경.
    • 플레이어의 수는 디버깅 용도로 남겨두기 위해 별도 함수 생성하여 출력
  • 버튼 눌러 삭제하고 나면 턴이 넘어가는 문제 발생
    • public bool DestroyPieceAt(int x, int z, bool isTurnEnd = true)로 매개변수 추가하여 별도 경우의 수로 추가
    • OnComplete()에 아예 턴 끝내는 것까지 연결돼있어서 OnlyMovePieceToPos()라는 별도 함수 추가
  • 플레이어가 움직인 직후에 종을 치거나 다른 기물을 움직일 수가 있고, 그러면 오류 발생.
  • 원래는 움직이자마자 바로 턴이 넘어가서 상관 없었는데, 애니메이션 기다리느라 턴이 잠시 안 넘어감.
    • 움직이면 ChangeToWaitingState()를 호출하여 허튼 짓 못하게 막음.
    • 어차피 EndTurn()에서 호출되는 ChangeState()는 currentState가 아닌 whiteTurn을 기준으로 state를 변경하기 때문에 문제될 것 없었음.

Import scene asset

애셋 산 뒤 필요한 부분만 씬에 잘라서 가져왔다.
베이킹과 추가 수정 필요.

profile
너 정말 **핵심**을 찔렀어

0개의 댓글