From e3935fe4b6ecfbe161001fc95d295f53e8520c52 Mon Sep 17 00:00:00 2001 From: Dmitri Morozov Date: Fri, 2 Feb 2024 18:58:12 +0100 Subject: Initial commit --- core/src/org/snoopdesigns/endless/EndlessGame.java | 66 ++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 core/src/org/snoopdesigns/endless/EndlessGame.java (limited to 'core/src/org/snoopdesigns/endless/EndlessGame.java') diff --git a/core/src/org/snoopdesigns/endless/EndlessGame.java b/core/src/org/snoopdesigns/endless/EndlessGame.java new file mode 100644 index 0000000..fc72c66 --- /dev/null +++ b/core/src/org/snoopdesigns/endless/EndlessGame.java @@ -0,0 +1,66 @@ +package org.snoopdesigns.endless; + +import java.util.List; + +import com.badlogic.gdx.ApplicationAdapter; +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.InputMultiplexer; +import com.badlogic.gdx.utils.ScreenUtils; +import org.snoopdesigns.endless.context.Context; +import org.snoopdesigns.endless.context.OnInit; +import org.snoopdesigns.endless.physics.Box2DDebugRenderer; +import org.snoopdesigns.endless.physics.Box2DRenderer; +import org.snoopdesigns.endless.physics.camera.CameraRenderer; +import org.snoopdesigns.endless.renderer.CursorRenderer; +import org.snoopdesigns.endless.renderer.DebugRenderer; +import org.snoopdesigns.endless.renderer.Renderer; +import org.snoopdesigns.endless.utils.ExitControllable; +import org.snoopdesigns.endless.world.ObjectsRenderer; +import org.snoopdesigns.endless.world.bg.BackgroundRenderer; + +public class EndlessGame extends ApplicationAdapter { + + private final List renderers = List.of( + new BackgroundRenderer(), + new Box2DRenderer(), + new CameraRenderer(), + new Box2DDebugRenderer(), + new ObjectsRenderer(), + new CursorRenderer(), + new DebugRenderer() + ); + + private final List intializers = List.of( + new Context() + ); + + @Override + public void create () { + intializers.forEach(OnInit::create); + + final InputMultiplexer inputMultiplexer = new InputMultiplexer(); + renderers.forEach(inputMultiplexer::addProcessor); + inputMultiplexer.addProcessor(Context.getInstance().getPlayerShip()); + inputMultiplexer.addProcessor(new ExitControllable()); + Gdx.input.setInputProcessor(inputMultiplexer); + + renderers.forEach(Renderer::create); + } + + @Override + public void render () { + ScreenUtils.clear(0, 0, 0, 1); + renderers.forEach(Renderer::render); + } + + @Override + public void resize(int width, int height) { + renderers.forEach(renderer -> + renderer.resize(width, height)); + } + + @Override + public void dispose() { + renderers.forEach(Renderer::dispose); + } +} -- cgit v1.2.3