refactor: forces
This commit is contained in:
parent
68b908ec43
commit
bea551fa19
|
@ -4,6 +4,16 @@ export default class Forces extends Component {
|
|||
instanceFromSchema() {
|
||||
const {ecs} = this;
|
||||
return class ForcesInstance extends super.instanceFromSchema() {
|
||||
applyForce({x, y}) {
|
||||
this.$$forceX += x;
|
||||
this.$$forceY += y;
|
||||
ecs.markChange(this.entity, {
|
||||
Forces: {
|
||||
forceX: this.$$forceX,
|
||||
forceY: this.$$forceY,
|
||||
},
|
||||
});
|
||||
}
|
||||
applyImpulse({x, y}) {
|
||||
this.$$impulseX += x;
|
||||
this.$$impulseY += y;
|
||||
|
@ -17,6 +27,8 @@ export default class Forces extends Component {
|
|||
}
|
||||
}
|
||||
static properties = {
|
||||
forceX: {type: 'float32'},
|
||||
forceY: {type: 'float32'},
|
||||
impulseX: {type: 'float32'},
|
||||
impulseY: {type: 'float32'},
|
||||
};
|
||||
|
|
|
@ -24,9 +24,9 @@ export default class IntegratePhysics extends System {
|
|||
return;
|
||||
}
|
||||
Position.lastX = Position.$$x;
|
||||
Position.$$x += elapsed * (Forces.$$impulseX);
|
||||
Position.$$x += elapsed * (Forces.$$impulseX + Forces.$$forceX);
|
||||
Position.lastY = Position.$$y;
|
||||
Position.$$y += elapsed * (Forces.$$impulseY);
|
||||
Position.$$y += elapsed * (Forces.$$impulseY + Forces.$$forceY);
|
||||
this.ecs.markChange(
|
||||
entity.id, {
|
||||
Position: {
|
||||
|
|
Loading…
Reference in New Issue
Block a user