a tiny bit of refactoring, extracting a function to get frames when walking which encapsulates logic for calculating which walk frame to use
This commit is contained in:
@@ -48,24 +48,20 @@ struct
|
|||||||
| FACING_LEFT =>
|
| FACING_LEFT =>
|
||||||
PlayerStandLeft.lerp (rx, ry, 4.0, ww, wh)
|
PlayerStandLeft.lerp (rx, ry, 4.0, ww, wh)
|
||||||
|
|
||||||
|
fun getWalk (rx, ry, dw, dh, ww, wh, walkFrames, animTimer) =
|
||||||
|
let
|
||||||
|
val frame = (animTimer div 2) mod Vector.length walkFrames
|
||||||
|
val func = Vector.sub (walkFrames, Int.max (frame, 0))
|
||||||
|
in
|
||||||
|
func (rx, ry, dw, dh, ww, wh, 1.0, 1.0, 1.0)
|
||||||
|
end
|
||||||
|
|
||||||
fun getWhenOnGround (player, rx, ry, dw, dh, ww, wh) =
|
fun getWhenOnGround (player, rx, ry, dw, dh, ww, wh) =
|
||||||
case #xAxis player of
|
case #xAxis player of
|
||||||
MOVE_RIGHT =>
|
MOVE_RIGHT =>
|
||||||
let
|
getWalk (rx, ry, dw, dh, ww, wh, walkRightFrames, #animTimer player)
|
||||||
val animTimer = #animTimer player
|
|
||||||
val frame = (animTimer div 2) mod Vector.length walkRightFrames
|
|
||||||
val func = Vector.sub (walkRightFrames, Int.max (frame, 0))
|
|
||||||
in
|
|
||||||
func (rx, ry, dw, dh, ww, wh, 1.0, 1.0, 1.0)
|
|
||||||
end
|
|
||||||
| MOVE_LEFT =>
|
| MOVE_LEFT =>
|
||||||
let
|
getWalk (rx, ry, dw, dh, ww, wh, walkLeftFrames, #animTimer player)
|
||||||
val animTimer = #animTimer player
|
|
||||||
val frame = (animTimer div 2) mod Vector.length walkLeftFrames
|
|
||||||
val func = Vector.sub (walkLeftFrames, Int.max (frame, 0))
|
|
||||||
in
|
|
||||||
func (rx, ry, dw, dh, ww, wh, 1.0, 1.0, 1.0)
|
|
||||||
end
|
|
||||||
| STAY_STILL => getIdle (player, rx, ry, dw, dh, ww, wh)
|
| STAY_STILL => getIdle (player, rx, ry, dw, dh, ww, wh)
|
||||||
|
|
||||||
fun getWhenJumpingRight (player, amt, rx, ry, dw, dh, ww, wh) =
|
fun getWhenJumpingRight (player, amt, rx, ry, dw, dh, ww, wh) =
|
||||||
|
|||||||
Reference in New Issue
Block a user