character: a seated body is held by its seat alone - no step to the walker while sitting, and a hold no longer turns it off the seat's heading
The user's play of the bundle: the character shook while seated. chr_sit_tick eased the body onto the seat point at the ground's height, then the same frame's chr_travel handed it to the walker, which pushed it off a log, a bench or a boulder beside the seat; the next frame pulled it back. Unwalked, the game's walker parks as it does under a rider. A hold's turn toward the work fought the seat's yaw the same way. The new test sits the body against the boulder: 4.63 m from a seat at 5.7 before, still after. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
614f030407
commit
6029d10e62
3 changed files with 23 additions and 2 deletions
|
|
@ -32,7 +32,10 @@ export function char_update(character_st: mut CharacterState, ix0: float, iz0: f
|
|||
mag = 1.0
|
||||
}
|
||||
chr_steer(character_st, dx, dz, mag, run, dt)
|
||||
let dist = chr_travel(character_st, dx, dz, -Math.sin(character_st.chr_yaw), -Math.cos(character_st.chr_yaw), jump, dt)
|
||||
# seated, the seat holds the body (chr_sit_tick): handed to the walker too, it was pushed off a
|
||||
# log or a bench and pulled back each frame, and shook
|
||||
var dist = 0.0
|
||||
if not character_st.chr_sit or character_st.chr_swim { dist = chr_travel(character_st, dx, dz, -Math.sin(character_st.chr_yaw), -Math.cos(character_st.chr_yaw), jump, dt) }
|
||||
chr_gait(character_st, dist, dyaw, dpitch, dt)
|
||||
char_camera(character_st, dt)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue