began working on inverted gameplay

This commit is contained in:
2017-06-07 23:19:41 -05:00
parent 571c93b77f
commit d0cf02e19a
42 changed files with 125 additions and 34 deletions

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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);

View File

@@ -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);

View File

@@ -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() {

View File

@@ -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);

View File

@@ -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());

View File

@@ -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();
}
}