began working on inverted gameplay
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 155 B After Width: | Height: | Size: 159 B |
Before Width: | Height: | Size: 336 B After Width: | Height: | Size: 396 B |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 173 B After Width: | Height: | Size: 175 B |
Before Width: | Height: | Size: 361 B After Width: | Height: | Size: 432 B |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 171 B After Width: | Height: | Size: 174 B |
Before Width: | Height: | Size: 347 B After Width: | Height: | Size: 419 B |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 242 B After Width: | Height: | Size: 239 B |
Before Width: | Height: | Size: 450 B After Width: | Height: | Size: 522 B |
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 297 B After Width: | Height: | Size: 289 B |
Before Width: | Height: | Size: 592 B After Width: | Height: | Size: 683 B |
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 61 KiB |
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 338 B After Width: | Height: | Size: 343 B |
Before Width: | Height: | Size: 733 B After Width: | Height: | Size: 846 B |
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 126 KiB |
Before Width: | Height: | Size: 603 B After Width: | Height: | Size: 523 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 136 B After Width: | Height: | Size: 125 B |
Before Width: | Height: | Size: 220 B After Width: | Height: | Size: 263 B |
@ -118,9 +118,9 @@ active: false
|
|||||||
active: false
|
active: false
|
||||||
- Tint -
|
- Tint -
|
||||||
colorsCount: 3
|
colorsCount: 3
|
||||||
colors0: 0.14901961
|
colors0: 0.15294118
|
||||||
colors1: 0.14901961
|
colors1: 0.85882354
|
||||||
colors2: 0.14901961
|
colors2: 1.0
|
||||||
timelineCount: 1
|
timelineCount: 1
|
||||||
timeline0: 0.0
|
timeline0: 0.0
|
||||||
- Transparency -
|
- Transparency -
|
||||||
@ -147,7 +147,7 @@ timeline5: 1.0
|
|||||||
attached: false
|
attached: false
|
||||||
continuous: true
|
continuous: true
|
||||||
aligned: false
|
aligned: false
|
||||||
additive: false
|
additive: true
|
||||||
behind: false
|
behind: false
|
||||||
premultipliedAlpha: false
|
premultipliedAlpha: false
|
||||||
- Image Path -
|
- Image Path -
|
||||||
|
79
android/assets/shaders/star_frag.glsl
Executable file
@ -0,0 +1,79 @@
|
|||||||
|
#extension GL_OES_standard_derivatives : enable
|
||||||
|
|
||||||
|
uniform float time;
|
||||||
|
uniform vec2 mouse;
|
||||||
|
uniform vec2 resolution;
|
||||||
|
#define M_PI 3.1415926535897932384626433832795
|
||||||
|
|
||||||
|
//#define time (time * time * 0.05)
|
||||||
|
|
||||||
|
vec2 rand2(vec2 p)
|
||||||
|
{
|
||||||
|
p = vec2(dot(p, vec2(102.9898,78.233)), dot(p, vec2(26.65125, 83.054543)));
|
||||||
|
return fract(sin(p) * 43758.5453);
|
||||||
|
}
|
||||||
|
|
||||||
|
float rand(vec2 p)
|
||||||
|
{
|
||||||
|
return fract(sin(dot(p.xy ,vec2(505.90898,18.233))) * 43037.5453);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Thanks to David Hoskins https://www.shadertoy.com/view/4djGRh
|
||||||
|
float stars(in vec2 x, float numCells, float size, float br)
|
||||||
|
{
|
||||||
|
vec2 n = x * numCells;
|
||||||
|
vec2 f = floor(n);
|
||||||
|
|
||||||
|
float d = 1.0e10;
|
||||||
|
for (int i = -1; i <= 1; ++i)
|
||||||
|
{
|
||||||
|
for (int j = -1; j <= 1; ++j)
|
||||||
|
{
|
||||||
|
vec2 g = f + vec2(float(i), float(j));
|
||||||
|
g = n - g - rand2(mod(g, numCells)) + rand(g);
|
||||||
|
// Control size
|
||||||
|
g *= 1. / (numCells * size);
|
||||||
|
d = min(d, dot(g, g));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return br * (smoothstep(.95, 1., (1. - sqrt(d))));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
|
||||||
|
float res = max(resolution.y, resolution.y);
|
||||||
|
|
||||||
|
vec2 coord = gl_FragCoord.xy / resolution;
|
||||||
|
|
||||||
|
vec2 tmp = coord;
|
||||||
|
|
||||||
|
coord.x = tmp.y;
|
||||||
|
coord.y = tmp.x;
|
||||||
|
|
||||||
|
vec3 result = vec3(0.);
|
||||||
|
result += stars(vec2(coord.x + time * 2.00,coord.y) , 1., 0.10, 2.) * vec3(.74, .74, .74);
|
||||||
|
result += stars(vec2(coord.x + time * 1.10,coord.y) , 1., 0.10, 2.) * vec3(.74, .74, .74);
|
||||||
|
result += stars(vec2(coord.x + time * 0.8,coord.y) , 1., 0.10, 2.) * vec3(.74, .74, .74);
|
||||||
|
result += stars(vec2(coord.x + time * 0.5,coord.y) , 2., 0.09, 2.) * vec3(.74, .74, .74);
|
||||||
|
result += stars(vec2(coord.x + time * 0.2,coord.y) , 4., 0.08, 2.) * vec3(.74, .74, .74);
|
||||||
|
result += stars(vec2(coord.x + time * 0.05,coord.y), 8., 0.05, 1.) * vec3(.74, .74, .74);
|
||||||
|
result += stars(vec2(coord.x + time * 0.025,coord.y), 10., 0.05,0.8) * vec3(.95, .95, .95);
|
||||||
|
result += stars(coord , 20., 0.025, 0.5) * vec3(.9, .9, .95);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
gl_FragColor = vec4(result,1.);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// bar layer open scene ;
|
||||||
|
// vec2 bl = gl_FragCoord.xy / resolution.xy;
|
||||||
|
|
||||||
|
// if(bl.y>.50-min(time/20.,0.4) ^^ bl.y<0.50+min(time/20.0,.4)) gl_FragColor = vec4(0.0,sqrt(coord.y+0.1),0.3,1.0);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -15,7 +15,7 @@ import zero1hd.polyjet.entity.enemies.VoidCircle;
|
|||||||
|
|
||||||
public class EntityController {
|
public class EntityController {
|
||||||
AssetManager assets;
|
AssetManager assets;
|
||||||
ShapeRenderer shapes;
|
public ShapeRenderer shapes;
|
||||||
|
|
||||||
public Array<Entity> activeAllies;
|
public Array<Entity> activeAllies;
|
||||||
public Array<Entity> activeEnemies;
|
public Array<Entity> activeEnemies;
|
||||||
|
@ -76,9 +76,7 @@ public class PolyJetEntity extends Actor implements Entity {
|
|||||||
@Override
|
@Override
|
||||||
public void draw(Batch batch, float parentAlpha) {
|
public void draw(Batch batch, float parentAlpha) {
|
||||||
thrust.draw(batch);
|
thrust.draw(batch);
|
||||||
batch.setColor(Color.BLACK);
|
|
||||||
batch.draw(polyjet, getX(), getY(), getWidth(), getHeight());
|
batch.draw(polyjet, getX(), getY(), getWidth(), getHeight());
|
||||||
batch.setColor(Color.WHITE);
|
|
||||||
super.draw(batch, parentAlpha);
|
super.draw(batch, parentAlpha);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ public class CreativeDebugScreen extends ScreenAdapter {
|
|||||||
InputMultiplexer inputs;
|
InputMultiplexer inputs;
|
||||||
|
|
||||||
public CreativeDebugScreen(Polyjet core, MainMenu mainMenu) {
|
public CreativeDebugScreen(Polyjet core, MainMenu mainMenu) {
|
||||||
gamePlayArea = new GamePlayArea(core.getAssetManager());
|
gamePlayArea = new GamePlayArea(core.getAssetManager(), core.getPrefs());
|
||||||
creative = new CreativeStage(core, mainMenu, gamePlayArea);
|
creative = new CreativeStage(core, mainMenu, gamePlayArea);
|
||||||
|
|
||||||
inputs = new InputMultiplexer(creative, gamePlayArea);
|
inputs = new InputMultiplexer(creative, gamePlayArea);
|
||||||
|
@ -97,7 +97,7 @@ public class GameScreen extends ScreenAdapter implements InputProcessor {
|
|||||||
(Gdx.graphics.getHeight() - pauseMenu.getHeight()) / 2);
|
(Gdx.graphics.getHeight() - pauseMenu.getHeight()) / 2);
|
||||||
|
|
||||||
// Continue to add things to input multiplexer
|
// Continue to add things to input multiplexer
|
||||||
gameArea = new GamePlayArea(polyJet.getAssetManager());
|
gameArea = new GamePlayArea(polyJet.getAssetManager(), core.getPrefs());
|
||||||
|
|
||||||
inputs = new InputMultiplexer();
|
inputs = new InputMultiplexer();
|
||||||
inputs.addProcessor(this);
|
inputs.addProcessor(this);
|
||||||
|
@ -5,7 +5,6 @@ import com.badlogic.gdx.Input.Keys;
|
|||||||
import com.badlogic.gdx.Screen;
|
import com.badlogic.gdx.Screen;
|
||||||
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.ShaderProgram;
|
|
||||||
import com.badlogic.gdx.math.Vector3;
|
import com.badlogic.gdx.math.Vector3;
|
||||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||||
import com.badlogic.gdx.scenes.scene2d.InputListener;
|
import com.badlogic.gdx.scenes.scene2d.InputListener;
|
||||||
@ -33,21 +32,10 @@ public class MainMenu extends ScreenAdapter implements TransitionAdapter {
|
|||||||
|
|
||||||
private Polyjet core;
|
private Polyjet core;
|
||||||
|
|
||||||
private ShaderProgram invert;
|
|
||||||
public MainMenu(final Polyjet core) {
|
public MainMenu(final Polyjet core) {
|
||||||
this.core = core;
|
this.core = core;
|
||||||
stage = new Stage(new ScreenViewport());
|
stage = new Stage(new ScreenViewport());
|
||||||
targetPosition = new Vector3(stage.getCamera().position);
|
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() {
|
public Screen postTransition() {
|
||||||
|
@ -77,11 +77,13 @@ public class MainPage extends Page {
|
|||||||
|
|
||||||
cyberCircle = new Image(core.getAssetManager().get("Tech-Circle1.png", Texture.class));
|
cyberCircle = new Image(core.getAssetManager().get("Tech-Circle1.png", Texture.class));
|
||||||
cyberCircle.setOrigin(cyberCircle.getWidth() / 2, cyberCircle.getHeight() / 2);
|
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)));
|
cyberCircle.addAction(Actions.forever(Actions.rotateBy(-360f, 10f)));
|
||||||
playButton.addActor(cyberCircle);
|
playButton.addActor(cyberCircle);
|
||||||
playButton.setSize(cyberCircle.getWidth(), cyberCircle.getHeight());
|
playButton.setSize(cyberCircle.getWidth(), cyberCircle.getHeight());
|
||||||
|
|
||||||
begin = new Label("Play", core.getDefaultSkin(), "special-font", core.getDefaultSkin().getColor("default"));
|
begin = new Label("Play", core.getDefaultSkin(), "special-font", core.getDefaultSkin().getColor("default"));
|
||||||
|
begin.setColor(1f, 1f, 1f, 1f);
|
||||||
playButton.addActor(begin);
|
playButton.addActor(begin);
|
||||||
begin.setPosition(((playButton.getWidth() - begin.getWidth()) / 2)-10,
|
begin.setPosition(((playButton.getWidth() - begin.getWidth()) / 2)-10,
|
||||||
(playButton.getHeight() - begin.getHeight()) / 2);
|
(playButton.getHeight() - begin.getHeight()) / 2);
|
||||||
|
@ -47,7 +47,7 @@ public class CreativeStage extends Stage implements MiniListener {
|
|||||||
beatViewer = new BeatViewer("Beat", core.getDefaultSkin());
|
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());
|
||||||
spawnerWindow = new SpawnerWindow("Spawn Tool", core.getDefaultSkin(), gpa.entityController, gpa);
|
spawnerWindow = new SpawnerWindow("Spawn Tool", core.getDefaultSkin(), gpa.ec, gpa);
|
||||||
|
|
||||||
//Back button
|
//Back button
|
||||||
TextButton backButton = new TextButton("Back", core.getDefaultSkin());
|
TextButton backButton = new TextButton("Back", core.getDefaultSkin());
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
package zero1hd.polyjet.ui.stages;
|
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.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.graphics.glutils.ShapeRenderer;
|
||||||
import com.badlogic.gdx.scenes.scene2d.Stage;
|
import com.badlogic.gdx.scenes.scene2d.Stage;
|
||||||
import com.badlogic.gdx.utils.viewport.FitViewport;
|
import com.badlogic.gdx.utils.viewport.FitViewport;
|
||||||
@ -20,31 +22,47 @@ public class GamePlayArea extends Stage {
|
|||||||
|
|
||||||
public ShapeRenderer shapes;
|
public ShapeRenderer shapes;
|
||||||
|
|
||||||
public EntityController entityController;
|
public EntityController ec;
|
||||||
private CollisionDetector collisionDetector;
|
private CollisionDetector collisionDetector;
|
||||||
|
|
||||||
private float maxHealth = 100;
|
private float maxHealth = 100;
|
||||||
private float yTeleport = Polyjet.GAME_AREA_HEIGHT/2;
|
private float yTeleport = Polyjet.GAME_AREA_HEIGHT/2;
|
||||||
private int score;
|
private int score;
|
||||||
|
|
||||||
Texture basicLaserTexture;
|
private ShaderProgram invert;
|
||||||
public GamePlayArea(AssetManager assetManager) {
|
|
||||||
|
public GamePlayArea(AssetManager assetManager, Preferences prefs) {
|
||||||
super(new FitViewport(Polyjet.GAME_AREA_WIDTH, Polyjet.GAME_AREA_HEIGHT));
|
super(new FitViewport(Polyjet.GAME_AREA_WIDTH, Polyjet.GAME_AREA_HEIGHT));
|
||||||
|
|
||||||
polyjet = new PolyJetEntity(assetManager, 25f, 25f, "standard");
|
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);
|
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
|
@Override
|
||||||
public void act(float delta) {
|
public void act(float delta) {
|
||||||
collisionDetector.collisionCheck();
|
collisionDetector.collisionCheck();
|
||||||
entityController.deathClean();
|
ec.deathClean();
|
||||||
|
|
||||||
if (polyjet.getX() <= 1) {
|
if (polyjet.getX() <= 1) {
|
||||||
polyjet.moveLeft = false;
|
polyjet.moveLeft = false;
|
||||||
@ -119,7 +137,7 @@ public class GamePlayArea extends Stage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (keycode == KeyMap.shoot) {
|
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);
|
laser.init(polyjet.getX() + (polyjet.getWidth()-laser.getWidth())/2f, polyjet.getY() + polyjet.getHeight()+0.25f, 60f);
|
||||||
addActor(laser);
|
addActor(laser);
|
||||||
}
|
}
|
||||||
@ -140,4 +158,10 @@ public class GamePlayArea extends Stage {
|
|||||||
public float getyTeleport() {
|
public float getyTeleport() {
|
||||||
return yTeleport;
|
return yTeleport;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dispose() {
|
||||||
|
ec.shapes.dispose();
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|