diff options
| author | Somhairle H. Marisol <[email protected]> | 2026-09-29 10:38:53 +0800 |
|---|---|---|
| committer | Somhairle H. Marisol <[email protected]> | 2026-09-29 10:38:53 +0800 |
| commit | 328760853c15c44d1de915d6c88e0dfd7ddc5af6 (patch) | |
| tree | aa1e570378cfe92b0c4e9f125141a43d0ba89663 /src/LivingVillage.Desktop/Game.fs | |
| parent | 46073814a67598c1a4122d1cb5abaaeb38c94e6d (diff) | |
| download | living-village-328760853c15c44d1de915d6c88e0dfd7ddc5af6.tar.gz | |
p72: 角色行走四向动画帧提升(6 走 + 2 待机)
CharacterArt 运行时点阵图集从 4 走 + 2 待机扩为 6 走(新增左右低过渡步 4/5,由 1/2 镜像)+ 2 待机,格数 *8、图集 5120x48;VillageArt 帧循环 %6、characterSourceRectangle *8、characterAtlasWidth 5120。同步 P45/Prototype 帧断言、新增 P72 帧表完整性回归、脚本与素材重新生成、维护说明动画语义。白天正午村庄行走实跑证据落 docs/evidence/p72-*。Desktop 343/343、Kernel 120/120、digest 与 p70 一致。
Diffstat (limited to 'src/LivingVillage.Desktop/Game.fs')
| -rw-r--r-- | src/LivingVillage.Desktop/Game.fs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/LivingVillage.Desktop/Game.fs b/src/LivingVillage.Desktop/Game.fs index ff1dfe0..6252117 100644 --- a/src/LivingVillage.Desktop/Game.fs +++ b/src/LivingVillage.Desktop/Game.fs @@ -99,6 +99,9 @@ type LivingVillageGame() as this = // P36 证据钩子:复用 sample 脚本的走位/互动序列,但按状态抓 4 帧关键帧 // (靠近→提示出现→对话层打开且世界交互被隔离→关闭离开提示消失)后退出。 let p36ShotMode = Environment.GetEnvironmentVariable("LV_P36_SHOT") = "1" + // P72 evidence hook: with sample recording on, log each saved frame's per-NPC walk + // frame so the PNGs can be correlated with the deterministic 6-frame cycle. + let p72Log = Environment.GetEnvironmentVariable("LV_P72_LOG") = "1" let sampleMode = Environment.GetEnvironmentVariable("LV_AUTOPLAY_SAMPLE") = "1" || p36ShotMode let menuShotMode = Environment.GetEnvironmentVariable("LV_AUTOPLAY_MENU_SHOT") = "1" let daylightAutoplay = Environment.GetEnvironmentVariable("LV_AUTOPLAY_DAYLIGHT") = "1" @@ -2812,7 +2815,13 @@ type LivingVillageGame() as this = recordIndex <- recordIndex + 1 if recordIndex % recordEvery = 0 then System.IO.Directory.CreateDirectory recordDirectory |> ignore - this.SaveBackBuffer(sprintf "%s/%s%04d.png" recordDirectory recordName recordIndex) + let name = sprintf "%s/%s%04d.png" recordDirectory recordName recordIndex + this.SaveBackBuffer(name) + if p72Log then + printfn "p72-frame %s tick=%d" name world.Tick + for npc in world.Npcs do + let spec = VillageArt.npcSpriteSpecAtTarget npc.Id npc.Pos npc.Mind.Target world.Tick + printfn " npc=%A pos=(%.1f,%.1f) frame=%A moving=%b" npc.Id npc.Pos.X npc.Pos.Y spec.Frame (npc.Mind.Target <> npc.Pos) if menuShotMode then this.CaptureMenuShot() if p42ShotMode then |
