began working on inverted gameplay
This commit is contained in:
@@ -15,7 +15,7 @@ import zero1hd.polyjet.entity.enemies.VoidCircle;
|
||||
|
||||
public class EntityController {
|
||||
AssetManager assets;
|
||||
ShapeRenderer shapes;
|
||||
public ShapeRenderer shapes;
|
||||
|
||||
public Array<Entity> activeAllies;
|
||||
public Array<Entity> activeEnemies;
|
||||
|
@@ -76,9 +76,7 @@ public class PolyJetEntity extends Actor implements Entity {
|
||||
@Override
|
||||
public void draw(Batch batch, float parentAlpha) {
|
||||
thrust.draw(batch);
|
||||
batch.setColor(Color.BLACK);
|
||||
batch.draw(polyjet, getX(), getY(), getWidth(), getHeight());
|
||||
batch.setColor(Color.WHITE);
|
||||
super.draw(batch, parentAlpha);
|
||||
}
|
||||
|
||||
|
@@ -15,7 +15,7 @@ public class CreativeDebugScreen extends ScreenAdapter {
|
||||
InputMultiplexer inputs;
|
||||
|
||||
public CreativeDebugScreen(Polyjet core, MainMenu mainMenu) {
|
||||
gamePlayArea = new GamePlayArea(core.getAssetManager());
|
||||
gamePlayArea = new GamePlayArea(core.getAssetManager(), core.getPrefs());
|
||||
creative = new CreativeStage(core, mainMenu, gamePlayArea);
|
||||
|
||||
inputs = new InputMultiplexer(creative, gamePlayArea);
|
||||
|
@@ -36,7 +36,7 @@ public class GameScreen extends ScreenAdapter implements InputProcessor {
|
||||
FPSWindow FPSDisplay;
|
||||
|
||||
private AudioData music;
|
||||
|
||||
|
||||
public GameScreen(Polyjet polyJet) {
|
||||
core = polyJet;
|
||||
|
||||
@@ -97,7 +97,7 @@ public class GameScreen extends ScreenAdapter implements InputProcessor {
|
||||
(Gdx.graphics.getHeight() - pauseMenu.getHeight()) / 2);
|
||||
|
||||
// Continue to add things to input multiplexer
|
||||
gameArea = new GamePlayArea(polyJet.getAssetManager());
|
||||
gameArea = new GamePlayArea(polyJet.getAssetManager(), core.getPrefs());
|
||||
|
||||
inputs = new InputMultiplexer();
|
||||
inputs.addProcessor(this);
|
||||
|
@@ -5,7 +5,6 @@ import com.badlogic.gdx.Input.Keys;
|
||||
import com.badlogic.gdx.Screen;
|
||||
import com.badlogic.gdx.ScreenAdapter;
|
||||
import com.badlogic.gdx.graphics.GL20;
|
||||
import com.badlogic.gdx.graphics.glutils.ShaderProgram;
|
||||
import com.badlogic.gdx.math.Vector3;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputListener;
|
||||
@@ -33,21 +32,10 @@ public class MainMenu extends ScreenAdapter implements TransitionAdapter {
|
||||
|
||||
private Polyjet core;
|
||||
|
||||
private ShaderProgram invert;
|
||||
public MainMenu(final Polyjet core) {
|
||||
this.core = core;
|
||||
stage = new Stage(new ScreenViewport());
|
||||
targetPosition = new Vector3(stage.getCamera().position);
|
||||
invert = new ShaderProgram(Gdx.files.internal("shaders/invert_vert.glsl").readString(), Gdx.files.internal("shaders/invert_frag.glsl").readString());
|
||||
ShaderProgram.pedantic = false;
|
||||
if (!invert.isCompiled()) {
|
||||
System.err.println(invert.getLog());
|
||||
System.exit(0);
|
||||
}
|
||||
if (invert.getLog().length()!=0)
|
||||
System.out.println(invert.getLog());
|
||||
|
||||
stage.getBatch().setShader(invert);
|
||||
}
|
||||
|
||||
public Screen postTransition() {
|
||||
|
@@ -77,11 +77,13 @@ public class MainPage extends Page {
|
||||
|
||||
cyberCircle = new Image(core.getAssetManager().get("Tech-Circle1.png", Texture.class));
|
||||
cyberCircle.setOrigin(cyberCircle.getWidth() / 2, cyberCircle.getHeight() / 2);
|
||||
cyberCircle.setColor(0.7f, 0.7f, 0.7f, 0.8f);
|
||||
cyberCircle.addAction(Actions.forever(Actions.rotateBy(-360f, 10f)));
|
||||
playButton.addActor(cyberCircle);
|
||||
playButton.setSize(cyberCircle.getWidth(), cyberCircle.getHeight());
|
||||
|
||||
begin = new Label("Play", core.getDefaultSkin(), "special-font", core.getDefaultSkin().getColor("default"));
|
||||
begin.setColor(1f, 1f, 1f, 1f);
|
||||
playButton.addActor(begin);
|
||||
begin.setPosition(((playButton.getWidth() - begin.getWidth()) / 2)-10,
|
||||
(playButton.getHeight() - begin.getHeight()) / 2);
|
||||
|
@@ -47,7 +47,7 @@ public class CreativeStage extends Stage implements MiniListener {
|
||||
beatViewer = new BeatViewer("Beat", core.getDefaultSkin());
|
||||
graphViewer = new GraphWindow("Peak Values", core.getDefaultSkin());
|
||||
volumeWindow = new VolumeWindow("Volume adjustments", core.getDefaultSkin(), core.getPrefs());
|
||||
spawnerWindow = new SpawnerWindow("Spawn Tool", core.getDefaultSkin(), gpa.entityController, gpa);
|
||||
spawnerWindow = new SpawnerWindow("Spawn Tool", core.getDefaultSkin(), gpa.ec, gpa);
|
||||
|
||||
//Back button
|
||||
TextButton backButton = new TextButton("Back", core.getDefaultSkin());
|
||||
|
@@ -1,7 +1,9 @@
|
||||
package zero1hd.polyjet.ui.stages;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.Preferences;
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.graphics.glutils.ShaderProgram;
|
||||
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
|
||||
import com.badlogic.gdx.scenes.scene2d.Stage;
|
||||
import com.badlogic.gdx.utils.viewport.FitViewport;
|
||||
@@ -20,31 +22,47 @@ public class GamePlayArea extends Stage {
|
||||
|
||||
public ShapeRenderer shapes;
|
||||
|
||||
public EntityController entityController;
|
||||
public EntityController ec;
|
||||
private CollisionDetector collisionDetector;
|
||||
|
||||
private float maxHealth = 100;
|
||||
private float yTeleport = Polyjet.GAME_AREA_HEIGHT/2;
|
||||
private int score;
|
||||
|
||||
Texture basicLaserTexture;
|
||||
public GamePlayArea(AssetManager assetManager) {
|
||||
private ShaderProgram invert;
|
||||
|
||||
public GamePlayArea(AssetManager assetManager, Preferences prefs) {
|
||||
super(new FitViewport(Polyjet.GAME_AREA_WIDTH, Polyjet.GAME_AREA_HEIGHT));
|
||||
|
||||
polyjet = new PolyJetEntity(assetManager, 25f, 25f, "standard");
|
||||
|
||||
shapes = new ShapeRenderer();
|
||||
shapes.setProjectionMatrix(getCamera().combined);
|
||||
entityController = new EntityController(assetManager, shapes);
|
||||
collisionDetector = new CollisionDetector(entityController.activeAllies, entityController.activeEnemies);
|
||||
entityController.activeAllies.add(polyjet);
|
||||
addActor(polyjet);
|
||||
|
||||
if (prefs.getBoolean("invert_shader")) {
|
||||
invert = new ShaderProgram(Gdx.files.internal("shaders/invert_vert.glsl").readString(), Gdx.files.internal("shaders/invert_frag.glsl").readString());
|
||||
ShaderProgram.pedantic = false;
|
||||
if (!invert.isCompiled()) {
|
||||
System.err.println(invert.getLog());
|
||||
System.exit(0);
|
||||
}
|
||||
if (invert.getLog().length()!=0)
|
||||
System.out.println(invert.getLog());
|
||||
|
||||
getBatch().setShader(invert);
|
||||
|
||||
}
|
||||
|
||||
shapes = new ShapeRenderer(64, getBatch().getShader());
|
||||
shapes.setProjectionMatrix(getCamera().combined);
|
||||
ec = new EntityController(assetManager, shapes);
|
||||
collisionDetector = new CollisionDetector(ec.activeAllies, ec.activeEnemies);
|
||||
ec.activeAllies.add(polyjet);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void act(float delta) {
|
||||
collisionDetector.collisionCheck();
|
||||
entityController.deathClean();
|
||||
ec.deathClean();
|
||||
|
||||
if (polyjet.getX() <= 1) {
|
||||
polyjet.moveLeft = false;
|
||||
@@ -119,7 +137,7 @@ public class GamePlayArea extends Stage {
|
||||
}
|
||||
|
||||
if (keycode == KeyMap.shoot) {
|
||||
Laser laser = (Laser) entityController.retrieveEntity(Entities.LASER);
|
||||
Laser laser = (Laser) ec.retrieveEntity(Entities.LASER);
|
||||
laser.init(polyjet.getX() + (polyjet.getWidth()-laser.getWidth())/2f, polyjet.getY() + polyjet.getHeight()+0.25f, 60f);
|
||||
addActor(laser);
|
||||
}
|
||||
@@ -140,4 +158,10 @@ public class GamePlayArea extends Stage {
|
||||
public float getyTeleport() {
|
||||
return yTeleport;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
ec.shapes.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user