diff options
| author | Dmitrii Morozov <snoopdesigns@gmail.com> | 2025-01-04 12:41:47 +0100 | 
|---|---|---|
| committer | Dmitrii Morozov <snoopdesigns@gmail.com> | 2025-01-04 12:41:47 +0100 | 
| commit | af88f7f96b64acd013c964383028311d6d310d5e (patch) | |
| tree | 4a92f7cd4637c32ff4e3673798a2ea13e0f17467 /core/src/org/snoopdesigns/endless/physics | |
| parent | 1e17c39d9a9fda793abb03fee9db2c7ad8f595fa (diff) | |
Start from scratch
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; -    } -}  | 
