blaze-2d
Version:
A fast and simple WebGL 2 2D game engine written in TypeScript
30 lines • 835 B
JavaScript
import { vec2 } from "gl-matrix";
import Space from "./space";
/**
* Represents an infinite space containing {@link RigidBody}s.
*
* Can be used to update objects dynamics.
*/
export default class DynamicsSpace extends Space {
/**
* Creates a {@link DynamicsSpace} instance.
*/
constructor(gravity) {
super();
this.gravity = vec2.clone(gravity);
}
/**
* Executes a solver on every object in the space.
*
* @param id The id of the solver to execute
*/
solve(id, delta) {
const solver = this.solvers[id];
for (let i = 0; i < solver.iterations; i++) {
for (const obj of this.objects) {
solver.cb(obj, delta, obj.takesGravity ? this.gravity : obj.gravity);
}
}
}
}
//# sourceMappingURL=dynamics.js.map