2024-06-25 10:44:37 -05:00
|
|
|
import {System} from '@/ecs/index.js';
|
|
|
|
|
2024-07-02 08:05:36 -05:00
|
|
|
export default class IntegratePhysics extends System {
|
2024-06-25 10:44:37 -05:00
|
|
|
|
|
|
|
static queries() {
|
|
|
|
return {
|
|
|
|
default: ['Position', 'Forces'],
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
tick(elapsed) {
|
2024-06-26 07:41:07 -05:00
|
|
|
for (const {Position, Forces} of this.select('default')) {
|
|
|
|
Position.x += elapsed * (Forces.impulseX + Forces.forceX);
|
|
|
|
Position.y += elapsed * (Forces.impulseY + Forces.forceY);
|
2024-06-25 10:44:37 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|