summaryrefslogtreecommitdiff
path: root/Homework/cs5410/bbiy/src/systems/physics.js
diff options
context:
space:
mode:
Diffstat (limited to 'Homework/cs5410/bbiy/src/systems/physics.js')
-rw-r--r--Homework/cs5410/bbiy/src/systems/physics.js16
1 files changed, 16 insertions, 0 deletions
diff --git a/Homework/cs5410/bbiy/src/systems/physics.js b/Homework/cs5410/bbiy/src/systems/physics.js
new file mode 100644
index 0000000..18c3cb3
--- /dev/null
+++ b/Homework/cs5410/bbiy/src/systems/physics.js
@@ -0,0 +1,16 @@
+game.system.Physics = () => {
+ const update = (elapsedTime, entities, changedIds) => {
+ for (let id in entities) {
+ const entity = entities[id];
+ if (entity.hasComponent("momentum") && entity.hasComponent("appearance")) {
+ const {dx, dy} = entity.components.momentum;
+ entity.components.position.x += dx * elapsedTime;
+ entity.components.position.y += dy * elapsedTime;
+ entity.components.position = clamp(entity.components.position, game.canvas.width - entity.components.appearance.width, game.canvas.height - entity.components.appearance.height);
+ }
+ }
+
+ return new Set();
+ };
+ return { update };
+};