이동엔진.한선 — 걸어다니는 마을 이동 로직 한선씨 정본
개요
village.js의 updatePlayer/tryMove(JS 렌더 래퍼)를 한선씨 순수 로직 정본으로 작성.
이동 계산이 TOAU(크라우니 기계어)로 실행됨.
무엇을 했는가
/Users/ef/CrownyOS/crownyc/libs/이동엔진.한선 신규 작성 (4함수)
- 고정소수점 ×1000 정수 좌표계 (부동소수 회피)
- 삼각도.한선 사인도/코사인도 사용 (분수각 지원)
- JS(village.js) 공식과 5케이스 1:1 완전 일치 (±0 오차)
함수 시그니처
이동벡터(mx, mz, 방위도) → [dx1000, dz1000]
박스충돌(x1000, z1000, 박스배열) → 1/0
원충돌(x1000, z1000, 원배열) → 1/0
이동시도(px,pz,dx,dz,step,박스배열,원배열) → [새x1000, 새z1000]
검증 결과
- 이동벡터 5케이스 PASS (JS ±0 일치)
- 박스충돌 슬라이딩 PASS
- 경계 ±52000 클램프 PASS
- TOAU 컴파일 OK (5033 cubes)
관련 파일
- 정본:
/Users/ef/CrownyOS/crownyc/libs/이동엔진.한선
- 미러:
/Users/ef/CrownyOS/시작화면/village.js (updatePlayer/tryMove)
- 의존:
libs/삼각도.한선
- 테스트:
/Users/ef/CrownyOS/crownyc/이동엔진_테스트.한선
잔여 이슈
- village.js는 수정 안 함 (한선씨 정본 + 대조만)
- JS side에서 이동엔진 호출 연결(WASM 또는 WebSocket 브릿지)은 별도 작업
- step 정밀도: 한선씨 정수 나눗셈으로 sub-unit 손실 있으나 게임 이동에는 무관