@inglorious/engine
Version:
A JavaScript game engine written with global state, immutability, and pure functions in mind. Have fun(ctional programming) with it!
19 lines (13 loc) • 576 B
JavaScript
import { angle, magnitude } from "@inglorious/utils/math/vector.js"
import { applyAcceleration } from "@inglorious/utils/physics/acceleration.js"
const DEFAULT_ORIENTATION = 0
const ORIENTATION_CHANGE_THRESHOLD = 4
export function modernMove(entity, dt) {
const { acceleration, velocity, position } = applyAcceleration(entity, dt)
let orientation = entity.orientation ?? DEFAULT_ORIENTATION
orientation =
magnitude(velocity) > ORIENTATION_CHANGE_THRESHOLD
? angle(velocity)
: orientation
return { acceleration, velocity, position, orientation }
}