began work on debug spawning system

This commit is contained in:
Harrison Deng 2017-05-30 23:17:45 -05:00
parent 4894d6eea8
commit 5776586458
6 changed files with 101 additions and 16 deletions

View File

@ -61,19 +61,23 @@ public class EntityController {
} }
} }
public void free(Entity entity, Entities type) { public void free(Entity entity) {
switch (type) { switch (entity.getEntityType()) {
case BAR_BEAT: case BAR_BEAT:
break; break;
case SHARDS: case SHARDS:
break; break;
case VOID_CIRCLE: case VOID_CIRCLE:
VoidCircle voidCircle = (VoidCircle) entity;
voidCircle.remove();
ACTIVE_ENEMIES.removeValue(entity, true); ACTIVE_ENEMIES.removeValue(entity, true);
VOID_CIRCLE_POOL.free((VoidCircle) entity); VOID_CIRCLE_POOL.free(voidCircle);
break; break;
case LASER: case LASER:
Laser laser = (Laser) entity;
laser.remove();
ACTIVE_ALLIES.removeValue(entity, true); ACTIVE_ALLIES.removeValue(entity, true);
LASER_POOL.free((Laser) entity); LASER_POOL.free(laser);
break; break;
default: default:
break; break;

View File

@ -4,6 +4,7 @@ import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.InputMultiplexer; import com.badlogic.gdx.InputMultiplexer;
import com.badlogic.gdx.ScreenAdapter; import com.badlogic.gdx.ScreenAdapter;
import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import zero1hd.polyjet.Polyjet; import zero1hd.polyjet.Polyjet;
import zero1hd.polyjet.ui.stages.CreativeStage; import zero1hd.polyjet.ui.stages.CreativeStage;
@ -14,10 +15,14 @@ public class CreativeDebugScreen extends ScreenAdapter {
GamePlayArea gamePlayArea; GamePlayArea gamePlayArea;
InputMultiplexer inputs; InputMultiplexer inputs;
ShapeRenderer shapes;
public CreativeDebugScreen(Polyjet core, MainMenu mainMenu) { public CreativeDebugScreen(Polyjet core, MainMenu mainMenu) {
creative = new CreativeStage(core, mainMenu); creative = new CreativeStage(core, mainMenu);
gamePlayArea = new GamePlayArea(core);
shapes = new ShapeRenderer();
gamePlayArea = new GamePlayArea(core.getAssetManager(), shapes);
inputs = new InputMultiplexer(creative, gamePlayArea); inputs = new InputMultiplexer(creative, gamePlayArea);
} }
@ -34,7 +39,10 @@ public class CreativeDebugScreen extends ScreenAdapter {
gamePlayArea.getViewport().apply(); gamePlayArea.getViewport().apply();
gamePlayArea.act(); gamePlayArea.act();
shapes.begin();
gamePlayArea.draw(); gamePlayArea.draw();
shapes.end();
creative.getViewport().apply(); creative.getViewport().apply();
creative.act(); creative.act();
@ -44,7 +52,6 @@ public class CreativeDebugScreen extends ScreenAdapter {
@Override @Override
public void resize(int width, int height) { public void resize(int width, int height) {
// TODO Auto-generated method stub
super.resize(width, height); super.resize(width, height);
} }
} }

View File

@ -36,17 +36,15 @@ public class CreativeStage extends Stage implements MiniListener {
AudioAnalyzer analyzer; AudioAnalyzer analyzer;
Window toolbox; Window toolbox;
Polyjet core;
public CreativeStage(final Polyjet core, final MainMenu mainMenu) { public CreativeStage(final Polyjet core, final MainMenu mainMenu) {
this.core = core;
musicSelector = new MusicSelector("Select Audio File", core.getDefaultSkin(), core.getPrefs().getString("music dir"), "default"); musicSelector = new MusicSelector("Select Audio File", core.getDefaultSkin(), core.getPrefs().getString("music dir"), "default");
musicSelector.miniSender.addListener(this); musicSelector.miniSender.addListener(this);
musicSelector.refresh(); musicSelector.refresh();
fpsViewer = new FPSWindow("FPS", core.getDefaultSkin()); fpsViewer = new FPSWindow("FPS", core.getDefaultSkin());
beatViewer = new BeatViewer("Beat", core.getDefaultSkin(), core); beatViewer = new BeatViewer("Beat", core.getDefaultSkin());
graphViewer = new GraphWindow("Peak Values", core.getDefaultSkin()); graphViewer = new GraphWindow("Peak Values", core.getDefaultSkin());
volumeWindow = new VolumeWindow("Volume adjustments", core.getDefaultSkin(), core.getPrefs()); volumeWindow = new VolumeWindow("Volume adjustments", core.getDefaultSkin(), core.getPrefs());

View File

@ -10,6 +10,7 @@ import zero1hd.polyjet.Polyjet;
import zero1hd.polyjet.controls.KeyMap; import zero1hd.polyjet.controls.KeyMap;
import zero1hd.polyjet.entity.CollisionDetector; import zero1hd.polyjet.entity.CollisionDetector;
import zero1hd.polyjet.entity.Entities; import zero1hd.polyjet.entity.Entities;
import zero1hd.polyjet.entity.Entity;
import zero1hd.polyjet.entity.EntityController; import zero1hd.polyjet.entity.EntityController;
import zero1hd.polyjet.entity.ally.Laser; import zero1hd.polyjet.entity.ally.Laser;
import zero1hd.polyjet.entity.ally.PolyJetEntity; import zero1hd.polyjet.entity.ally.PolyJetEntity;
@ -40,6 +41,20 @@ public class GamePlayArea extends Stage {
public void act(float delta) { public void act(float delta) {
collisionDetector.collisionCheck(); collisionDetector.collisionCheck();
while (entityController.ACTIVE_ALLIES.iterator().hasNext()) {
Entity entity = entityController.ACTIVE_ALLIES.iterator().next();
if (entity.isDead()) {
entityController.free(entity);
}
}
while (entityController.ACTIVE_ENEMIES.iterator().hasNext()) {
Entity entity = entityController.ACTIVE_ENEMIES.iterator().next();
if (entity.isDead()) {
entityController.free(entity);
}
}
if (polyjet.getX() <= 1) { if (polyjet.getX() <= 1) {
polyjet.moveLeft = false; polyjet.moveLeft = false;
polyjet.setX(1f); polyjet.setX(1f);
@ -106,6 +121,7 @@ public class GamePlayArea extends Stage {
if (keycode == KeyMap.shoot) { if (keycode == KeyMap.shoot) {
Laser laser = (Laser) entityController.retrieveEntity(Entities.LASER); Laser laser = (Laser) entityController.retrieveEntity(Entities.LASER);
laser.init(polyjet.getX() + (polyjet.getWidth()-laser.getWidth())/2, polyjet.getY() + polyjet.getHeight()+0.25f, 30f); laser.init(polyjet.getX() + (polyjet.getWidth()-laser.getWidth())/2, polyjet.getY() + polyjet.getHeight()+0.25f, 30f);
addActor(laser);
} }
return false; return false;
} }

View File

@ -9,7 +9,6 @@ import com.badlogic.gdx.scenes.scene2d.ui.Skin;
import com.badlogic.gdx.scenes.scene2d.ui.WidgetGroup; import com.badlogic.gdx.scenes.scene2d.ui.WidgetGroup;
import com.badlogic.gdx.scenes.scene2d.ui.Window; import com.badlogic.gdx.scenes.scene2d.ui.Window;
import zero1hd.polyjet.Polyjet;
import zero1hd.polyjet.audio.AudioAnalyzer; import zero1hd.polyjet.audio.AudioAnalyzer;
import zero1hd.polyjet.audio.AudioData; import zero1hd.polyjet.audio.AudioData;
@ -20,7 +19,7 @@ public class BeatViewer extends Window {
Texture lightOn; Texture lightOn;
private AudioAnalyzer data; private AudioAnalyzer data;
public BeatViewer(String title, Skin skin, Polyjet core) { public BeatViewer(String title, Skin skin) {
super(title, skin); super(title, skin);
defaults().space(5f); defaults().space(5f);
setSize(64, 100); setSize(64, 100);
@ -34,11 +33,11 @@ public class BeatViewer extends Window {
WidgetGroup bassBar = new WidgetGroup(); WidgetGroup bassBar = new WidgetGroup();
final Image bgBassBar = new Image(core.getDefaultSkin().getPatch("bar-empty")); final Image bgBassBar = new Image(skin.getPatch("bar-empty"));
bgBassBar.setHeight(50f); bgBassBar.setHeight(50f);
bassBar.setSize(bgBassBar.getWidth(), bgBassBar.getHeight()); bassBar.setSize(bgBassBar.getWidth(), bgBassBar.getHeight());
final Image bassBarFill = new Image(core.getDefaultSkin().getPatch("bar-fill")) { final Image bassBarFill = new Image(skin.getPatch("bar-fill")) {
@Override @Override
public void act(float delta) { public void act(float delta) {
try { try {
@ -57,10 +56,10 @@ public class BeatViewer extends Window {
add(bassBar).minSize(bassBar.getWidth(), bassBar.getHeight()); add(bassBar).minSize(bassBar.getWidth(), bassBar.getHeight());
WidgetGroup UMBar = new WidgetGroup(); WidgetGroup UMBar = new WidgetGroup();
final Image bgUMBar = new Image(core.getDefaultSkin().getPatch("bar-empty")); final Image bgUMBar = new Image(skin.getPatch("bar-empty"));
bgUMBar.setHeight(50f); bgUMBar.setHeight(50f);
UMBar.setSize(bgUMBar.getWidth(), bgUMBar.getHeight()); UMBar.setSize(bgUMBar.getWidth(), bgUMBar.getHeight());
Image UMBarFill = new Image(core.getDefaultSkin().getPatch("bar-fill")) { Image UMBarFill = new Image(skin.getPatch("bar-fill")) {
@Override @Override
public void act(float delta) { public void act(float delta) {
try { try {
@ -91,7 +90,6 @@ public class BeatViewer extends Window {
addAction(Actions.sequence(Actions.alpha(1f), Actions.fadeOut(0.15f))); addAction(Actions.sequence(Actions.alpha(1f), Actions.fadeOut(0.15f)));
} }
} catch (IndexOutOfBoundsException e) { } catch (IndexOutOfBoundsException e) {
// TODO: handle exception
} }
super.act(delta); super.act(delta);
} }

View File

@ -0,0 +1,62 @@
package zero1hd.polyjet.ui.windows;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
import com.badlogic.gdx.scenes.scene2d.ui.TextField;
import com.badlogic.gdx.scenes.scene2d.ui.Window;
import zero1hd.polyjet.entity.Entities;
import zero1hd.polyjet.entity.Entity;
import zero1hd.polyjet.entity.EntityController;
import zero1hd.polyjet.entity.ally.Laser;
import zero1hd.polyjet.entity.enemies.VoidCircle;
public class SpawnerWindow extends Window {
private TextField spawnName;
private TextField modifier;
private EntityController ec;
private Stage stage;
public SpawnerWindow(String title, Skin skin, EntityController ec, Stage stageForEntities) {
super(title, skin);
spawnName = new TextField("", skin);
modifier = new TextField("0;0;0", skin);
this.ec = ec;
stage = stageForEntities;
}
@Override
public boolean remove() {
spawnName.setText("");
return super.remove();
}
@Override
public void act(float delta) {
if (Gdx.input.isTouched() && !spawnName.getText().isEmpty()) {
Entity entity = ec.retrieveEntity(Entities.valueOf(spawnName.getText()));
switch(entity.getEntityType()) {
case BAR_BEAT:
break;
case LASER:
Laser laser = (Laser) entity;
laser.init(Gdx.input.getX(), Gdx.input.getY(), Float.valueOf(modifier.getText().split(";")[0]));
stage.addActor(laser);
break;
case SHARDS:
break;
case VOID_CIRCLE:
VoidCircle voidCircle = (VoidCircle) entity;
voidCircle.init(Float.valueOf(modifier.getText().split(";")[0]), Gdx.input.getX(), Gdx.input.getY(), Float.valueOf(modifier.getText().split(";")[1]), Float.valueOf(modifier.getText().split(";")[2]));
stage.addActor(voidCircle);
break;
default:
break;
}
}
super.act(delta);
}
}