diff options
Diffstat (limited to 'core/src/org/snoopdesigns/endless/physics')
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; - } -} |