나아가는 거리와 속도를 매번 새로 뽑도록

"몇 초 동안 나아간다"로 잡았더니 시간 범위가 좁고 속도가 고정이라 매번 비슷한
거리를 갔다. 짜인 것처럼 보였다.

- 시간이 아니라 거리로 이동을 끊는다. 거리는 층 높이의 0.3~6배(1~22칸)에서
  뽑되 pow(randf(), 1.6)으로 짧은 쪽에 치우치게
- 속도 배수도 이동마다 0.6~1.5배로 새로 뽑는다
- 좌우 어느 쪽으로 갈지도 매번 새로. 가던 쪽을 잇게 했더니 한 방향으로 흘렀다
- 위아래로 가는 것은 off_odds로 따로 굴린다 (물고기 15%, 게 4%)
- 벽에서 돌아설 때는 이번 이동을 곧 끝내서 벽을 따라 미끄러지지 않게

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-02 15:20:38 +09:00
parent 7c52c34874
commit c9b9145615
2 changed files with 120 additions and 88 deletions
+7
View File
@@ -462,3 +462,10 @@ F11이나 메뉴로 창을 화면 전체로 키운다. 그냥 창만 키우면
빠른 움직임은 몇 분만 지나도 산만해진다. 물고기가 벗어나는 각도도 6도 남짓으로
좁혀 두었다 -- 실제로 물고기가 수직으로 오르내리는 일은 드물다. 대신 열 번에
한 번쯤은 크게 틀어 수심을 바꾸게 해서, 모두가 제 높이에 줄지어 있지 않도록 했다.
한동안은 "몇 초 동안 나아간다"로 잡았는데, 시간이 좁은 범위 안에서만 흔들리고
속도가 고정이라 결국 매번 비슷한 거리를 갔다. 짜인 것처럼 보였다. 지금은 나아갈
때마다 **거리와 속도를 각각 새로 뽑는다**. 거리는 층 높이의 0.3~6배(대략 1~22칸)
사이에서 뽑되 짧은 쪽으로 치우치게 해서(`pow(randf(), 1.6)`), 몇 칸만 가는 일이
잦고 화면을 가로지르는 일은 가끔 있게 했다. 방향도 좌우 어느 쪽인지 매번 새로
던진다 -- 가던 쪽을 이어 가게 했더니 오히려 한 방향으로 흐르는 것처럼 보였다.