summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElizabeth Hunt <elizabeth.hunt@simponic.xyz>2023-08-13 17:09:12 -0600
committerElizabeth Hunt <elizabeth.hunt@simponic.xyz>2023-08-13 17:09:12 -0600
commit2dc3120831fbcd03b635bbad59213ff0bf1f8879 (patch)
treedf1b6e88e8f0a9370e2cd321f52725524cc4d06d
parent98e795029bcc404463ed151ff5255a72498bc641 (diff)
downloadjumpstorm-2dc3120831fbcd03b635bbad59213ff0bf1f8879.tar.gz
jumpstorm-2dc3120831fbcd03b635bbad59213ff0bf1f8879.zip
refactor velocity a bit for no real reason besides verbosity
-rw-r--r--engine/components/Control.ts6
-rw-r--r--engine/components/Velocity.ts18
-rw-r--r--engine/entities/Player.ts4
-rw-r--r--engine/interfaces/Vec2.ts7
-rw-r--r--engine/systems/Collision.ts8
-rw-r--r--engine/systems/FacingDirection.ts15
-rw-r--r--engine/systems/Input.ts12
-rw-r--r--engine/systems/Physics.ts22
8 files changed, 55 insertions, 37 deletions
diff --git a/engine/components/Control.ts b/engine/components/Control.ts
index 1e782ee..fb7b916 100644
--- a/engine/components/Control.ts
+++ b/engine/components/Control.ts
@@ -1,11 +1,11 @@
import { Component, ComponentNames, Velocity } from ".";
export class Control extends Component {
- public controlVelocity: Velocity;
+ public controlVelocityComponent: Velocity;
- constructor(controlVelocity: Velocity = new Velocity()) {
+ constructor(controlVelocityComponent: Velocity = new Velocity()) {
super(ComponentNames.Control);
- this.controlVelocity = controlVelocity;
+ this.controlVelocityComponent = controlVelocityComponent;
}
}
diff --git a/engine/components/Velocity.ts b/engine/components/Velocity.ts
index 068d8cd..aec0c03 100644
--- a/engine/components/Velocity.ts
+++ b/engine/components/Velocity.ts
@@ -3,21 +3,21 @@ import { Component } from "./Component";
import { ComponentNames } from ".";
export class Velocity extends Component {
- public dCartesian: Velocity2D;
- public dTheta: number;
+ public velocity: Velocity2D;
- constructor(dCartesian: Velocity2D = { dx: 0, dy: 0 }, dTheta: number = 0) {
+ constructor(
+ velocity: Velocity2D = { dCartesian: { dx: 0, dy: 0 }, dTheta: 0 },
+ ) {
super(ComponentNames.Velocity);
- this.dCartesian = dCartesian;
- this.dTheta = dTheta;
+ this.velocity = velocity;
}
- public add(velocity?: Velocity) {
+ public add(velocity?: Velocity2D) {
if (velocity) {
- this.dCartesian.dx += velocity.dCartesian.dx;
- this.dCartesian.dy += velocity.dCartesian.dy;
- this.dTheta += velocity.dTheta;
+ this.velocity.dCartesian.dx += velocity.dCartesian.dx;
+ this.velocity.dCartesian.dy += velocity.dCartesian.dy;
+ this.velocity.dTheta += velocity.dTheta;
}
}
}
diff --git a/engine/entities/Player.ts b/engine/entities/Player.ts
index 45d7500..eeddd69 100644
--- a/engine/entities/Player.ts
+++ b/engine/entities/Player.ts
@@ -35,7 +35,9 @@ export class Player extends Entity {
),
);
- this.addComponent(new Velocity({ dx: 0, dy: 0 }, 0));
+ this.addComponent(
+ new Velocity({ dCartesian: { dx: 0, dy: 0 }, dTheta: 0 }),
+ );
this.addComponent(new Mass(Player.MASS));
this.addComponent(new Moment(Player.MOI));
diff --git a/engine/interfaces/Vec2.ts b/engine/interfaces/Vec2.ts
index b2bae37..04be4be 100644
--- a/engine/interfaces/Vec2.ts
+++ b/engine/interfaces/Vec2.ts
@@ -9,8 +9,11 @@ export interface Dimension2D {
}
export interface Velocity2D {
- dx: number;
- dy: number;
+ dCartesian: {
+ dx: number;
+ dy: number;
+ };
+ dTheta: number;
}
export interface Force2D {
diff --git a/engine/systems/Collision.ts b/engine/systems/Collision.ts
index 1366ef4..889f85e 100644
--- a/engine/systems/Collision.ts
+++ b/engine/systems/Collision.ts
@@ -10,7 +10,7 @@ import {
import { Game } from "../Game";
import { PhysicsConstants } from "../config";
import { Entity } from "../entities";
-import type { Dimension2D } from "../interfaces";
+import type { Dimension2D, Velocity2D } from "../interfaces";
import { QuadTree } from "../structures";
export class Collision extends System {
@@ -91,9 +91,11 @@ export class Collision extends System {
(entity) => entity.getComponent<BoundingBox>(ComponentNames.BoundingBox),
);
- let velocity = new Velocity();
+ let velocity: Velocity2D = { dCartesian: { dx: 0, dy: 0 }, dTheta: 0 };
if (entityA.hasComponent(ComponentNames.Velocity)) {
- velocity = entityA.getComponent<Velocity>(ComponentNames.Velocity);
+ velocity = entityA.getComponent<Velocity>(
+ ComponentNames.Velocity,
+ ).velocity;
}
if (
diff --git a/engine/systems/FacingDirection.ts b/engine/systems/FacingDirection.ts
index 4426ab6..daf639f 100644
--- a/engine/systems/FacingDirection.ts
+++ b/engine/systems/FacingDirection.ts
@@ -20,21 +20,24 @@ export class FacingDirection extends System {
return;
}
- const totalVelocity: Velocity = new Velocity();
+ const totalVelocityComponent = new Velocity();
const control = entity.getComponent<Control>(ComponentNames.Control);
- const velocity = entity.getComponent<Velocity>(ComponentNames.Velocity);
- totalVelocity.add(velocity);
+ const velocity = entity.getComponent<Velocity>(
+ ComponentNames.Velocity,
+ ).velocity;
+
+ totalVelocityComponent.add(velocity);
if (control) {
- totalVelocity.add(control.controlVelocity);
+ totalVelocityComponent.add(control.controlVelocityComponent.velocity);
}
const facingDirection = entity.getComponent<FacingDirectionComponent>(
ComponentNames.FacingDirection,
);
- if (totalVelocity.dCartesian.dx > 0) {
+ if (totalVelocityComponent.velocity.dCartesian.dx > 0) {
entity.addComponent(facingDirection.facingRightSprite);
- } else if (totalVelocity.dCartesian.dx < 0) {
+ } else if (totalVelocityComponent.velocity.dCartesian.dx < 0) {
entity.addComponent(facingDirection.facingLeftSprite);
}
},
diff --git a/engine/systems/Input.ts b/engine/systems/Input.ts
index 35d2e1d..d9b7133 100644
--- a/engine/systems/Input.ts
+++ b/engine/systems/Input.ts
@@ -39,20 +39,24 @@ export class Input extends System {
public update(_dt: number, game: Game) {
game.forEachEntityWithComponent(ComponentNames.Control, (entity) => {
- const control = entity.getComponent<Control>(ComponentNames.Control);
+ const controlComponent = entity.getComponent<Control>(
+ ComponentNames.Control,
+ );
if (this.hasSomeKey(KeyConstants.ActionKeys.get(Action.MOVE_RIGHT))) {
- control.controlVelocity.dCartesian.dx +=
+ controlComponent.controlVelocityComponent.velocity.dCartesian.dx +=
PhysicsConstants.PLAYER_MOVE_VEL;
}
if (this.hasSomeKey(KeyConstants.ActionKeys.get(Action.MOVE_LEFT))) {
- control.controlVelocity.dCartesian.dx +=
+ controlComponent.controlVelocityComponent.velocity.dCartesian.dx +=
-PhysicsConstants.PLAYER_MOVE_VEL;
}
if (entity.hasComponent(ComponentNames.Jump)) {
- const velocity = entity.getComponent<Velocity>(ComponentNames.Velocity);
+ const velocity = entity.getComponent<Velocity>(
+ ComponentNames.Velocity,
+ ).velocity;
const jump = entity.getComponent<Jump>(ComponentNames.Jump);
if (this.hasSomeKey(KeyConstants.ActionKeys.get(Action.JUMP))) {
diff --git a/engine/systems/Physics.ts b/engine/systems/Physics.ts
index 38962a6..e324c97 100644
--- a/engine/systems/Physics.ts
+++ b/engine/systems/Physics.ts
@@ -11,7 +11,7 @@ import {
Control,
} from "../components";
import { PhysicsConstants } from "../config";
-import type { Force2D } from "../interfaces";
+import type { Force2D, Velocity2D } from "../interfaces";
import { Game } from "../Game";
export class Physics extends System {
@@ -23,7 +23,9 @@ export class Physics extends System {
game.forEachEntityWithComponent(ComponentNames.Forces, (entity) => {
const mass = entity.getComponent<Mass>(ComponentNames.Mass).mass;
const forces = entity.getComponent<Forces>(ComponentNames.Forces).forces;
- const velocity = entity.getComponent<Velocity>(ComponentNames.Velocity);
+ const velocity = entity.getComponent<Velocity>(
+ ComponentNames.Velocity,
+ ).velocity;
const inertia = entity.getComponent<Moment>(
ComponentNames.Moment,
).inertia;
@@ -73,12 +75,14 @@ export class Physics extends System {
});
game.forEachEntityWithComponent(ComponentNames.Velocity, (entity) => {
- const velocity: Velocity = new Velocity();
+ const velocityComponent: Velocity = new Velocity();
const control = entity.getComponent<Control>(ComponentNames.Control);
- velocity.add(entity.getComponent<Velocity>(ComponentNames.Velocity));
+ velocityComponent.add(
+ entity.getComponent<Velocity>(ComponentNames.Velocity).velocity,
+ );
if (control) {
- velocity.add(control.controlVelocity);
+ velocityComponent.add(control.controlVelocityComponent.velocity);
}
const boundingBox = entity.getComponent<BoundingBox>(
@@ -86,9 +90,9 @@ export class Physics extends System {
);
// integrate velocity
- boundingBox.center.x += velocity.dCartesian.dx * dt;
- boundingBox.center.y += velocity.dCartesian.dy * dt;
- boundingBox.rotation += velocity.dTheta * dt;
+ boundingBox.center.x += velocityComponent.velocity.dCartesian.dx * dt;
+ boundingBox.center.y += velocityComponent.velocity.dCartesian.dy * dt;
+ boundingBox.rotation += velocityComponent.velocity.dTheta * dt;
boundingBox.rotation =
(boundingBox.rotation < 0
? 360 + boundingBox.rotation
@@ -96,7 +100,7 @@ export class Physics extends System {
// clear the control velocity
if (control) {
- control.controlVelocity = new Velocity();
+ control.controlVelocityComponent = new Velocity();
}
});
}