summaryrefslogtreecommitdiff
path: root/core/src/org/snoopdesigns/endless/physics
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/org/snoopdesigns/endless/physics')
-rw-r--r--core/src/org/snoopdesigns/endless/physics/Box2DDebugRenderer.java65
-rw-r--r--core/src/org/snoopdesigns/endless/physics/Box2DLocation.java46
-rw-r--r--core/src/org/snoopdesigns/endless/physics/Box2DRenderer.java22
-rw-r--r--core/src/org/snoopdesigns/endless/physics/PhysicalBody.java47
-rw-r--r--core/src/org/snoopdesigns/endless/physics/SteerablePhysicalBody.java115
-rw-r--r--core/src/org/snoopdesigns/endless/physics/WorldContext.java17
-rw-r--r--core/src/org/snoopdesigns/endless/physics/camera/CameraContext.java48
-rw-r--r--core/src/org/snoopdesigns/endless/physics/camera/CameraRenderer.java55
8 files changed, 0 insertions, 415 deletions
diff --git a/core/src/org/snoopdesigns/endless/physics/Box2DDebugRenderer.java b/core/src/org/snoopdesigns/endless/physics/Box2DDebugRenderer.java
deleted file mode 100644
index 9d7d4dd..0000000
--- a/core/src/org/snoopdesigns/endless/physics/Box2DDebugRenderer.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.snoopdesigns.endless.physics;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.graphics.Color;
-import com.badlogic.gdx.graphics.g2d.BitmapFont;
-import com.badlogic.gdx.graphics.g2d.SpriteBatch;
-import com.badlogic.gdx.physics.box2d.Body;
-import com.badlogic.gdx.utils.Array;
-import org.snoopdesigns.endless.context.Context;
-import org.snoopdesigns.endless.renderer.Renderer;
-
-public class Box2DDebugRenderer implements Renderer {
-
- private com.badlogic.gdx.physics.box2d.Box2DDebugRenderer debugRenderer;
- private BitmapFont font;
- private SpriteBatch batch;
-
- @Override
- public void create() {
- debugRenderer = new com.badlogic.gdx.physics.box2d.Box2DDebugRenderer();
- debugRenderer.setDrawBodies(true);
- debugRenderer.setDrawVelocities(true);
- debugRenderer.setDrawAABBs(true);
-
- font = new BitmapFont(Gdx.files.internal("calibri.fnt"), false);
- font.setColor(Color.CYAN);
- font.getData().setScale(0.15f);
-
- batch = new SpriteBatch();
- }
-
- @Override
- public void render() {
- debugRenderer.render(
- Context.getInstance().getWorldContext().getWorld(),
- Context.getInstance().getCameraContext().getCameraProjection());
-
- final Array<Body> bodies = new Array<>();
- Context.getInstance().getWorldContext().getWorld().getBodies(bodies);
-
- batch.setProjectionMatrix(Context.getInstance().getCameraContext().getCameraProjection());
- batch.begin();
- bodies.forEach(body -> {
- final String debugText = String.format("""
- p %.1f %.1f
- a %.1f
- s %.1f m/s
- v %.1f %.1f
- """,
- body.getPosition().x,
- body.getPosition().y,
- body.getAngle(),
- body.getLinearVelocity().len(),
- body.getLinearVelocity().x,
- body.getLinearVelocity().y);
- font.draw(batch, debugText, body.getPosition().x + 5f, body.getPosition().y - 5f);
- });
- batch.end();
- }
-
- @Override
- public void dispose() {
- batch.dispose();
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/physics/Box2DLocation.java b/core/src/org/snoopdesigns/endless/physics/Box2DLocation.java
deleted file mode 100644
index 338b595..0000000
--- a/core/src/org/snoopdesigns/endless/physics/Box2DLocation.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package org.snoopdesigns.endless.physics;
-
-import com.badlogic.gdx.ai.utils.Location;
-import com.badlogic.gdx.math.Vector2;
-
-public class Box2DLocation implements Location<Vector2> {
- Vector2 position;
- float orientation;
-
- public Box2DLocation () {
- this.position = new Vector2();
- this.orientation = 0;
- }
-
- @Override
- public Vector2 getPosition () {
- return position;
- }
-
- @Override
- public float getOrientation () {
- return orientation;
- }
-
- @Override
- public void setOrientation (float orientation) {
- this.orientation = orientation;
- }
-
- @Override
- public Location<Vector2> newLocation () {
- return new Box2DLocation();
- }
-
- @Override
- public float vectorToAngle (Vector2 vector) {
- return (float)Math.atan2(-vector.x, vector.y);
- }
-
- @Override
- public Vector2 angleToVector (Vector2 outVector, float angle) {
- outVector.x = -(float)Math.sin(angle);
- outVector.y = (float)Math.cos(angle);
- return outVector;
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/physics/Box2DRenderer.java b/core/src/org/snoopdesigns/endless/physics/Box2DRenderer.java
deleted file mode 100644
index 641e397..0000000
--- a/core/src/org/snoopdesigns/endless/physics/Box2DRenderer.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.snoopdesigns.endless.physics;
-
-import com.badlogic.gdx.physics.box2d.Box2D;
-import org.snoopdesigns.endless.context.Context;
-import org.snoopdesigns.endless.renderer.Renderer;
-
-public class Box2DRenderer implements Renderer {
-
- @Override
- public void create() {
- Box2D.init();
- }
-
- @Override
- public void render() {
- Context.getInstance().getWorldContext().getWorld().step(1/60f, 6, 2);
- }
-
- @Override
- public void dispose() {
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/physics/PhysicalBody.java b/core/src/org/snoopdesigns/endless/physics/PhysicalBody.java
deleted file mode 100644
index 31204a9..0000000
--- a/core/src/org/snoopdesigns/endless/physics/PhysicalBody.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package org.snoopdesigns.endless.physics;
-
-import com.badlogic.gdx.math.Vector2;
-import com.badlogic.gdx.physics.box2d.Body;
-import com.badlogic.gdx.physics.box2d.BodyDef;
-import com.badlogic.gdx.physics.box2d.BodyDef.BodyType;
-import com.badlogic.gdx.physics.box2d.FixtureDef;
-import com.badlogic.gdx.physics.box2d.MassData;
-import org.snoopdesigns.endless.context.Context;
-
-public abstract class PhysicalBody {
-
- Body body;
-
- public abstract BodyType getBodyType();
- public abstract FixtureDef getFixture();
- public abstract float getMass();
- public abstract float getLinearDamping();
- public abstract float getMaxVelocity();
- public Vector2 getInitialPosition() {
- return new Vector2(0, 0);
- }
-
- public void initBody() {
- final BodyDef bodyDef = new BodyDef();
- bodyDef.type = getBodyType();
- bodyDef.position.set(getInitialPosition());
- body = Context.getInstance().getWorldContext().getWorld().createBody(bodyDef);
- body.createFixture(getFixture());
-
- final MassData massData = new MassData();
- massData.mass = getMass();
- getBody().setMassData(massData);
-
- getBody().setLinearDamping(getLinearDamping());
- }
-
- public void limitVelocity() {
- if (getBody().getLinearVelocity().len() > getMaxVelocity()) {
- getBody().setLinearVelocity(getBody().getLinearVelocity().limit(getMaxVelocity()));
- }
- }
-
- public Body getBody() {
- return body;
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/physics/SteerablePhysicalBody.java b/core/src/org/snoopdesigns/endless/physics/SteerablePhysicalBody.java
deleted file mode 100644
index 9e9a85c..0000000
--- a/core/src/org/snoopdesigns/endless/physics/SteerablePhysicalBody.java
+++ /dev/null
@@ -1,115 +0,0 @@
-package org.snoopdesigns.endless.physics;
-
-import com.badlogic.gdx.ai.steer.Steerable;
-import com.badlogic.gdx.ai.utils.Location;
-import com.badlogic.gdx.math.Vector2;
-
-public abstract class SteerablePhysicalBody extends PhysicalBody implements Steerable<Vector2> {
-
- public abstract float getMaxSpeed();
- public abstract float getMaxAcceleration();
- public abstract float getMaxRotationSpeed();
- public abstract float getMaxRotationAcceleration();
-
- @Override
- public Vector2 getLinearVelocity() {
- return getBody().getLinearVelocity();
- }
-
- @Override
- public float getAngularVelocity() {
- return getBody().getAngularVelocity();
- }
-
- @Override
- public float getBoundingRadius() {
- return 0.001f;
- }
-
- @Override
- public boolean isTagged() {
- return false;
- }
-
- @Override
- public void setTagged(boolean tagged) {
- }
-
- @Override
- public float getZeroLinearSpeedThreshold() {
- return 0.1f;
- }
-
- @Override
- public void setZeroLinearSpeedThreshold(float value) {
- }
-
- @Override
- public float getMaxLinearSpeed() {
- return getMaxSpeed();
- }
-
- @Override
- public void setMaxLinearSpeed(float maxLinearSpeed) {
- }
-
- @Override
- public float getMaxLinearAcceleration() {
- return getMaxAcceleration();
- }
-
- @Override
- public void setMaxLinearAcceleration(float maxLinearAcceleration) {
- }
-
- @Override
- public float getMaxAngularSpeed() {
- return getMaxRotationSpeed();
- }
-
- @Override
- public void setMaxAngularSpeed(float maxAngularSpeed) {
- }
-
- @Override
- public float getMaxAngularAcceleration() {
- return getMaxRotationAcceleration();
- }
-
- @Override
- public void setMaxAngularAcceleration(float maxAngularAcceleration) {
- }
-
- @Override
- public Vector2 getPosition() {
- return getBody().getPosition();
- }
-
- @Override
- public float getOrientation() {
- return getBody().getAngle();
- }
-
- @Override
- public void setOrientation(float orientation) {
- getBody().setTransform(getPosition(), orientation);
- }
-
- @Override
- public float vectorToAngle(Vector2 vector) {
- return vector.angleRad();
- }
-
- @Override
- public Vector2 angleToVector(Vector2 outVector, float angle) {
- final var tmpVector = new Vector2(1, 0).rotateRad(angle);
- outVector.x = tmpVector.x;
- outVector.y = tmpVector.y;
- return outVector;
- }
-
- @Override
- public Location<Vector2> newLocation() {
- return new Box2DLocation();
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/physics/WorldContext.java b/core/src/org/snoopdesigns/endless/physics/WorldContext.java
deleted file mode 100644
index 5f10ba8..0000000
--- a/core/src/org/snoopdesigns/endless/physics/WorldContext.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.snoopdesigns.endless.physics;
-
-import com.badlogic.gdx.math.Vector2;
-import com.badlogic.gdx.physics.box2d.World;
-
-public class WorldContext {
-
- private final World world;
-
- public WorldContext() {
- this.world = new World(new Vector2(0, 0), true);
- }
-
- public World getWorld() {
- return world;
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/physics/camera/CameraContext.java b/core/src/org/snoopdesigns/endless/physics/camera/CameraContext.java
deleted file mode 100644
index 635813c..0000000
--- a/core/src/org/snoopdesigns/endless/physics/camera/CameraContext.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package org.snoopdesigns.endless.physics.camera;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.math.Matrix4;
-import com.badlogic.gdx.math.Vector2;
-
-public final class CameraContext {
-
- private static final float DEFAULT_WORLD_WIDTH = 300.0f;
-
- private final Vector2 position;
- private final Vector2 viewport;
- private float zoom;
- private Matrix4 cameraProjection;
-
- public CameraContext() {
- final float w = Gdx.graphics.getWidth();
- final float h = Gdx.graphics.getHeight();
-
- this.position = new Vector2(0, 0);
- this.zoom = 1.0f;
- this.viewport = new Vector2(DEFAULT_WORLD_WIDTH, DEFAULT_WORLD_WIDTH * (h / w));
- }
-
- public Matrix4 getCameraProjection() {
- return cameraProjection;
- }
-
- public void setCameraProjection(Matrix4 cameraProjection) {
- this.cameraProjection = cameraProjection;
- }
-
- public Vector2 getPosition() {
- return position;
- }
-
- public float getZoom() {
- return zoom;
- }
-
- public void setZoom(float zoom) {
- this.zoom = zoom;
- }
-
- public Vector2 getViewport() {
- return viewport;
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/physics/camera/CameraRenderer.java b/core/src/org/snoopdesigns/endless/physics/camera/CameraRenderer.java
deleted file mode 100644
index 165240a..0000000
--- a/core/src/org/snoopdesigns/endless/physics/camera/CameraRenderer.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.snoopdesigns.endless.physics.camera;
-
-import com.badlogic.gdx.graphics.OrthographicCamera;
-import com.badlogic.gdx.math.Vector2;
-import com.badlogic.gdx.utils.viewport.ExtendViewport;
-import com.badlogic.gdx.utils.viewport.Viewport;
-import org.snoopdesigns.endless.context.Context;
-import org.snoopdesigns.endless.renderer.Renderer;
-
-public class CameraRenderer implements Renderer {
-
- private static final float DEFAULT_WORLD_WIDTH = 300.0f;
- private static final float DEFAULT_WORLD_HEIGHT = 300.0f;
-
- private OrthographicCamera camera;
- private Viewport viewport;
-
- @Override
- public void create() {
- camera = new OrthographicCamera();
- camera.zoom = Context.getInstance().getCameraContext().getZoom();
- viewport = new ExtendViewport(
- Context.getInstance().getCameraContext().getViewport().x,
- Context.getInstance().getCameraContext().getViewport().y,
- camera);
- camera.update();
- Context.getInstance().getCameraContext().setCameraProjection(camera.combined);
- }
-
- @Override
- public void render() {
- final Vector2 cameraPosition = Context.getInstance().getCameraContext().getPosition();
- camera.position.set(cameraPosition.x, cameraPosition.y, 0);
- camera.update();
- }
-
- @Override
- public void dispose() {
- }
-
- @Override
- public void resize(int width, int height) {
- viewport.update(width, height);
- Context.getInstance().getCameraContext().getViewport().set(
- camera.viewportWidth,
- camera.viewportHeight);
- }
-
- @Override
- public boolean scrolled(float amountX, float amountY) {
- camera.zoom += amountY / 10f;
- Context.getInstance().getCameraContext().setZoom(camera.zoom);
- return true;
- }
-}