added particles and improved main menu aesthetically
This commit is contained in:
parent
67f9105922
commit
4c329e8d8f
159
android/assets/particles/beateffect.p
Executable file
159
android/assets/particles/beateffect.p
Executable file
@ -0,0 +1,159 @@
|
|||||||
|
beat
|
||||||
|
- Delay -
|
||||||
|
active: false
|
||||||
|
- Duration -
|
||||||
|
lowMin: 300.0
|
||||||
|
lowMax: 300.0
|
||||||
|
- Count -
|
||||||
|
min: 0
|
||||||
|
max: 50
|
||||||
|
- Emission -
|
||||||
|
lowMin: 0.0
|
||||||
|
lowMax: 0.0
|
||||||
|
highMin: 45.0
|
||||||
|
highMax: 70.0
|
||||||
|
relative: false
|
||||||
|
scalingCount: 3
|
||||||
|
scaling0: 1.0
|
||||||
|
scaling1: 0.0
|
||||||
|
scaling2: 0.0
|
||||||
|
timelineCount: 3
|
||||||
|
timeline0: 0.0
|
||||||
|
timeline1: 0.36301368
|
||||||
|
timeline2: 1.0
|
||||||
|
- Life -
|
||||||
|
lowMin: 0.0
|
||||||
|
lowMax: 0.0
|
||||||
|
highMin: 750.0
|
||||||
|
highMax: 1500.0
|
||||||
|
relative: false
|
||||||
|
scalingCount: 2
|
||||||
|
scaling0: 1.0
|
||||||
|
scaling1: 1.0
|
||||||
|
timelineCount: 2
|
||||||
|
timeline0: 0.0
|
||||||
|
timeline1: 1.0
|
||||||
|
- Life Offset -
|
||||||
|
active: false
|
||||||
|
- X Offset -
|
||||||
|
active: false
|
||||||
|
- Y Offset -
|
||||||
|
active: false
|
||||||
|
- Spawn Shape -
|
||||||
|
shape: line
|
||||||
|
- Spawn Width -
|
||||||
|
lowMin: 0.0
|
||||||
|
lowMax: 0.0
|
||||||
|
highMin: 64.0
|
||||||
|
highMax: 64.0
|
||||||
|
relative: false
|
||||||
|
scalingCount: 1
|
||||||
|
scaling0: 1.0
|
||||||
|
timelineCount: 1
|
||||||
|
timeline0: 0.0
|
||||||
|
- Spawn Height -
|
||||||
|
lowMin: 0.0
|
||||||
|
lowMax: 0.0
|
||||||
|
highMin: 0.0
|
||||||
|
highMax: 0.0
|
||||||
|
relative: false
|
||||||
|
scalingCount: 1
|
||||||
|
scaling0: 1.0
|
||||||
|
timelineCount: 1
|
||||||
|
timeline0: 0.0
|
||||||
|
- Scale -
|
||||||
|
lowMin: 0.0
|
||||||
|
lowMax: 0.0
|
||||||
|
highMin: 1.0
|
||||||
|
highMax: 1.0
|
||||||
|
relative: false
|
||||||
|
scalingCount: 1
|
||||||
|
scaling0: 1.0
|
||||||
|
timelineCount: 1
|
||||||
|
timeline0: 0.0
|
||||||
|
- Velocity -
|
||||||
|
active: true
|
||||||
|
lowMin: 0.0
|
||||||
|
lowMax: 0.0
|
||||||
|
highMin: 15.0
|
||||||
|
highMax: 30.0
|
||||||
|
relative: false
|
||||||
|
scalingCount: 1
|
||||||
|
scaling0: 1.0
|
||||||
|
timelineCount: 1
|
||||||
|
timeline0: 0.0
|
||||||
|
- Angle -
|
||||||
|
active: true
|
||||||
|
lowMin: 90.0
|
||||||
|
lowMax: 90.0
|
||||||
|
highMin: 45.0
|
||||||
|
highMax: 135.0
|
||||||
|
relative: false
|
||||||
|
scalingCount: 3
|
||||||
|
scaling0: 1.0
|
||||||
|
scaling1: 0.0
|
||||||
|
scaling2: 0.0
|
||||||
|
timelineCount: 3
|
||||||
|
timeline0: 0.0
|
||||||
|
timeline1: 0.5
|
||||||
|
timeline2: 1.0
|
||||||
|
- Rotation -
|
||||||
|
active: true
|
||||||
|
lowMin: 0.0
|
||||||
|
lowMax: 0.0
|
||||||
|
highMin: 0.0
|
||||||
|
highMax: 360.0
|
||||||
|
relative: false
|
||||||
|
scalingCount: 2
|
||||||
|
scaling0: 0.0
|
||||||
|
scaling1: 1.0
|
||||||
|
timelineCount: 2
|
||||||
|
timeline0: 0.0
|
||||||
|
timeline1: 1.0
|
||||||
|
- Wind -
|
||||||
|
active: true
|
||||||
|
lowMin: 0.0
|
||||||
|
lowMax: 0.0
|
||||||
|
highMin: 0.0
|
||||||
|
highMax: 0.0
|
||||||
|
relative: false
|
||||||
|
scalingCount: 1
|
||||||
|
scaling0: 1.0
|
||||||
|
timelineCount: 1
|
||||||
|
timeline0: 0.0
|
||||||
|
- Gravity -
|
||||||
|
active: false
|
||||||
|
- Tint -
|
||||||
|
colorsCount: 3
|
||||||
|
colors0: 0.7411765
|
||||||
|
colors1: 0.20392157
|
||||||
|
colors2: 0.0
|
||||||
|
timelineCount: 1
|
||||||
|
timeline0: 0.0
|
||||||
|
- Transparency -
|
||||||
|
lowMin: 0.0
|
||||||
|
lowMax: 0.0
|
||||||
|
highMin: 1.0
|
||||||
|
highMax: 1.0
|
||||||
|
relative: false
|
||||||
|
scalingCount: 5
|
||||||
|
scaling0: 0.21052632
|
||||||
|
scaling1: 0.5263158
|
||||||
|
scaling2: 0.54385966
|
||||||
|
scaling3: 0.45614034
|
||||||
|
scaling4: 0.0
|
||||||
|
timelineCount: 5
|
||||||
|
timeline0: 0.0
|
||||||
|
timeline1: 0.38356164
|
||||||
|
timeline2: 0.67808217
|
||||||
|
timeline3: 0.7671233
|
||||||
|
timeline4: 1.0
|
||||||
|
- Options -
|
||||||
|
attached: false
|
||||||
|
continuous: false
|
||||||
|
aligned: false
|
||||||
|
additive: true
|
||||||
|
behind: false
|
||||||
|
premultipliedAlpha: false
|
||||||
|
- Image Path -
|
||||||
|
triangle.png
|
BIN
android/assets/particles/triangle.png
Executable file
BIN
android/assets/particles/triangle.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 929 B |
@ -180,6 +180,7 @@ public class RhythmBullet extends Game {
|
|||||||
assetManager.load("explosion.ogg", Sound.class);
|
assetManager.load("explosion.ogg", Sound.class);
|
||||||
assetManager.load("disintegrate.ogg", Sound.class);
|
assetManager.load("disintegrate.ogg", Sound.class);
|
||||||
assetManager.load("explosion-s.p", ParticleEffect.class);
|
assetManager.load("explosion-s.p", ParticleEffect.class);
|
||||||
|
assetManager.load("beateffect.p", ParticleEffect.class);
|
||||||
assetManager.load("tpSelector.png", Texture.class);
|
assetManager.load("tpSelector.png", Texture.class);
|
||||||
assetManager.load("magic1.png", Texture.class);
|
assetManager.load("magic1.png", Texture.class);
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,8 @@ public class BasicVisualizer extends VisualizerCore {
|
|||||||
private boolean flip;
|
private boolean flip;
|
||||||
private Array<MirrorVisualizer> mirrors;
|
private Array<MirrorVisualizer> mirrors;
|
||||||
private boolean reverse;
|
private boolean reverse;
|
||||||
|
private float maxAvgHeight;
|
||||||
|
private float currentAvg;
|
||||||
|
|
||||||
public BasicVisualizer() {
|
public BasicVisualizer() {
|
||||||
super(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()/2, 0, 0);
|
super(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()/2, 0, 0);
|
||||||
@ -66,7 +68,6 @@ public class BasicVisualizer extends VisualizerCore {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void modify(float delta) {
|
public void modify(float delta) {
|
||||||
|
|
||||||
|
|
||||||
//Averaging bins together
|
//Averaging bins together
|
||||||
for (int i = 0; i < barCount; i++) {
|
for (int i = 0; i < barCount; i++) {
|
||||||
@ -78,6 +79,7 @@ public class BasicVisualizer extends VisualizerCore {
|
|||||||
barHeight *= barHeightMultiplier;
|
barHeight *= barHeightMultiplier;
|
||||||
barHeights[i] = barHeight;
|
barHeights[i] = barHeight;
|
||||||
}
|
}
|
||||||
|
currentAvg = 0;
|
||||||
for (int i = 0; i < barCount; i++) {
|
for (int i = 0; i < barCount; i++) {
|
||||||
int avg = 0;
|
int avg = 0;
|
||||||
//Averaging the bars
|
//Averaging the bars
|
||||||
@ -91,21 +93,28 @@ public class BasicVisualizer extends VisualizerCore {
|
|||||||
}
|
}
|
||||||
avg /= smoothRange*2;
|
avg /= smoothRange*2;
|
||||||
barHeights[i] = avg;
|
barHeights[i] = avg;
|
||||||
|
currentAvg += barHeights[i];
|
||||||
if (bars[i].getHeight() > barHeights[i]) {
|
if (bars[i].getHeight() > barHeights[i]) {
|
||||||
bars[i].setSize(barWidth, bars[i].getHeight() - (20f*delta*(bars[i].getHeight()-barHeights[i])));
|
bars[i].setSize(barWidth, bars[i].getHeight() - (20f*delta*(bars[i].getHeight()-barHeights[i])));
|
||||||
} else {
|
} else {
|
||||||
bars[i].setSize(barWidth, bars[i].getHeight() + (27f*delta*(barHeights[i] - bars[i].getHeight())));
|
bars[i].setSize(barWidth, bars[i].getHeight() + (27f*delta*(barHeights[i] - bars[i].getHeight())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
currentAvg /= barHeights.length;
|
||||||
|
if (currentAvg > maxAvgHeight) {
|
||||||
|
maxAvgHeight = currentAvg;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setMM(MusicManager mm) {
|
public void setMM(MusicManager mm) {
|
||||||
super.setMM(mm);
|
super.setMM(mm);
|
||||||
|
maxAvgHeight = 0;
|
||||||
|
currentAvg = 0;
|
||||||
float validBins = (5000/((mm.getSampleRate()/2)/((audioPCM.length/2)+1)));
|
float validBins = (5000/((mm.getSampleRate()/2)/((audioPCM.length/2)+1)));
|
||||||
Gdx.app.debug("Visualizer", "valid frequency bins " + validBins);
|
Gdx.app.debug("Visualizer", "valid frequency bins " + validBins);
|
||||||
binsPerBar = MathUtils.round((validBins/barCount));
|
binsPerBar = MathUtils.round((validBins/barCount));
|
||||||
|
barHeights = new float[barCount];
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -153,6 +162,9 @@ public class BasicVisualizer extends VisualizerCore {
|
|||||||
for (int i = 0; i < bars.length; i++) {
|
for (int i = 0; i < bars.length; i++) {
|
||||||
bars[i].setColor(r, g, b, a);
|
bars[i].setColor(r, g, b, a);
|
||||||
}
|
}
|
||||||
|
for (int i = 0; i < mirrors.size; i++) {
|
||||||
|
mirrors.get(i).setColor(r, g, b, a);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRotation(float rotation) {
|
public void setRotation(float rotation) {
|
||||||
@ -191,4 +203,16 @@ public class BasicVisualizer extends VisualizerCore {
|
|||||||
public boolean isReversed() {
|
public boolean isReversed() {
|
||||||
return reverse;
|
return reverse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Sprite[] getBars() {
|
||||||
|
return bars;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getCurrentAvg() {
|
||||||
|
return currentAvg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getMaxAvgHeight() {
|
||||||
|
return maxAvgHeight;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,6 +54,12 @@ public class MirrorVisualizer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setColor(float r, float g, float b, float a) {
|
||||||
|
for (int i = 0; i < bars.length; i++) {
|
||||||
|
bars[i].setColor(r, g, b, a);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public float getRotation() {
|
public float getRotation() {
|
||||||
return rotation;
|
return rotation;
|
||||||
}
|
}
|
||||||
|
@ -43,8 +43,8 @@ public class VisualizerCore implements Disposable {
|
|||||||
if (audioPCM == null || audioPCM.length != mm.getReadWindowSize()) {
|
if (audioPCM == null || audioPCM.length != mm.getReadWindowSize()) {
|
||||||
calc = false;
|
calc = false;
|
||||||
fft = new FloatFFT_1D(mm.getReadWindowSize());
|
fft = new FloatFFT_1D(mm.getReadWindowSize());
|
||||||
audioPCM = new float[mm.getReadWindowSize()];
|
|
||||||
}
|
}
|
||||||
|
audioPCM = new float[mm.getReadWindowSize()];
|
||||||
this.mm = mm;
|
this.mm = mm;
|
||||||
calc = true;
|
calc = true;
|
||||||
lock.unlock();
|
lock.unlock();
|
||||||
|
@ -1,112 +0,0 @@
|
|||||||
package zero1hd.rhythmbullet.graphics.meshes;
|
|
||||||
|
|
||||||
import com.badlogic.gdx.Gdx;
|
|
||||||
import com.badlogic.gdx.graphics.Color;
|
|
||||||
import com.badlogic.gdx.graphics.GL20;
|
|
||||||
import com.badlogic.gdx.graphics.Mesh;
|
|
||||||
import com.badlogic.gdx.graphics.OrthographicCamera;
|
|
||||||
import com.badlogic.gdx.graphics.VertexAttribute;
|
|
||||||
import com.badlogic.gdx.graphics.VertexAttributes.Usage;
|
|
||||||
import com.badlogic.gdx.graphics.glutils.ShaderProgram;
|
|
||||||
import com.badlogic.gdx.utils.Disposable;
|
|
||||||
|
|
||||||
public class TitleBarMesh implements Disposable {
|
|
||||||
private Mesh mesh;
|
|
||||||
private OrthographicCamera cam;
|
|
||||||
private ShaderProgram shader;
|
|
||||||
private Color color;
|
|
||||||
private int height;
|
|
||||||
|
|
||||||
public final int POSITION_VARS = 2;
|
|
||||||
public final int COLOR_VARS = 1; //Packed color data
|
|
||||||
public final int TOTAL_VARS = POSITION_VARS + COLOR_VARS;
|
|
||||||
public final int MAX_POLY = 1;
|
|
||||||
public final int MAX_VERTS = 4 * MAX_POLY;
|
|
||||||
|
|
||||||
private float[] verts = new float[MAX_VERTS * TOTAL_VARS];
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public TitleBarMesh() {
|
|
||||||
shader = new ShaderProgram(Gdx.files.internal("shaders/mesh.vsh"), Gdx.files.internal("shaders/mesh.fsh"));
|
|
||||||
mesh = new Mesh(true, MAX_VERTS, 0, new VertexAttribute(Usage.Position, POSITION_VARS, "a_position"),
|
|
||||||
//still expects 4 color components
|
|
||||||
new VertexAttribute(Usage.ColorPacked, 4, "a_color"));
|
|
||||||
|
|
||||||
color = new Color(Color.WHITE);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCam(OrthographicCamera cam) {
|
|
||||||
this.cam = cam;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setColor(Color color) {
|
|
||||||
this.color = color;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHeight(int height) {
|
|
||||||
this.height = height;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getHeight() {
|
|
||||||
return height;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Color getColor() {
|
|
||||||
return color;
|
|
||||||
}
|
|
||||||
|
|
||||||
private int idx = 0;
|
|
||||||
|
|
||||||
public void draw() {
|
|
||||||
if (idx == verts.length) {
|
|
||||||
flush();
|
|
||||||
}
|
|
||||||
|
|
||||||
float c = color.toFloatBits();
|
|
||||||
|
|
||||||
verts[idx++] = 0;
|
|
||||||
verts[idx++] = height;
|
|
||||||
verts[idx++] = c;
|
|
||||||
|
|
||||||
verts[idx++] = Gdx.graphics.getWidth();
|
|
||||||
verts[idx++] = Gdx.graphics.getHeight();
|
|
||||||
verts[idx++] = c;
|
|
||||||
|
|
||||||
verts[idx++] = Gdx.graphics.getWidth();
|
|
||||||
verts[idx++] = Gdx.graphics.getHeight() - height;
|
|
||||||
verts[idx++] = c;
|
|
||||||
|
|
||||||
verts[idx++] = 0;
|
|
||||||
verts[idx++] = 0;
|
|
||||||
verts[idx++] = c;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void flush() {
|
|
||||||
if (idx != 0) {
|
|
||||||
mesh.setVertices(verts);
|
|
||||||
|
|
||||||
Gdx.gl.glDepthMask(false);
|
|
||||||
Gdx.gl.glEnable(GL20.GL_BLEND);
|
|
||||||
Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
|
|
||||||
|
|
||||||
int vertCount = idx/TOTAL_VARS;
|
|
||||||
|
|
||||||
cam.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
|
|
||||||
|
|
||||||
shader.begin();
|
|
||||||
shader.setUniformMatrix("u_projTrans", cam.combined);
|
|
||||||
mesh.render(shader, GL20.GL_TRIANGLE_FAN, 0, vertCount);
|
|
||||||
shader.end();
|
|
||||||
|
|
||||||
Gdx.gl.glDepthMask(true);
|
|
||||||
|
|
||||||
idx = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void dispose() {
|
|
||||||
mesh.dispose();
|
|
||||||
shader.dispose();
|
|
||||||
}
|
|
||||||
}
|
|
@ -11,20 +11,20 @@ import com.badlogic.gdx.utils.Array;
|
|||||||
|
|
||||||
import zero1hd.rhythmbullet.controls.KeyMap;
|
import zero1hd.rhythmbullet.controls.KeyMap;
|
||||||
|
|
||||||
public class SetControls extends Table {
|
public class ControlOptions extends Table {
|
||||||
public SetControls(Skin skin, KeyMap keyMap) {
|
public ControlOptions(Skin skin, KeyMap keyMap) {
|
||||||
super(skin);
|
super(skin);
|
||||||
|
|
||||||
//first
|
//first
|
||||||
Label forwardKeyLabel = new Label("Forward: ",skin);
|
Label forwardKeyLabel = new Label("Forward: ",skin);
|
||||||
forwardKeyLabel.setName(KeyMap.UP);
|
forwardKeyLabel.setName(KeyMap.UP);
|
||||||
add(forwardKeyLabel).left();
|
add(forwardKeyLabel).left();
|
||||||
KeySetter forwardKeySetter = new KeySetter(keyMap, KeyMap.UP);
|
KeyBindButton forwardKeySetter = new KeyBindButton(keyMap, KeyMap.UP);
|
||||||
add(forwardKeySetter).spaceRight(45f);
|
add(forwardKeySetter).spaceRight(45f);
|
||||||
Label shootKeyLabel = new Label("Shoot: ", skin);
|
Label shootKeyLabel = new Label("Shoot: ", skin);
|
||||||
shootKeyLabel.setName(KeyMap.SHOOT);
|
shootKeyLabel.setName(KeyMap.SHOOT);
|
||||||
add(shootKeyLabel).left();
|
add(shootKeyLabel).left();
|
||||||
KeySetter shootKeySetter = new KeySetter(keyMap, KeyMap.SHOOT);
|
KeyBindButton shootKeySetter = new KeyBindButton(keyMap, KeyMap.SHOOT);
|
||||||
add(shootKeySetter);
|
add(shootKeySetter);
|
||||||
|
|
||||||
row();
|
row();
|
||||||
@ -33,12 +33,12 @@ public class SetControls extends Table {
|
|||||||
Label backwardKeyLabel = new Label("Backward: ", skin);
|
Label backwardKeyLabel = new Label("Backward: ", skin);
|
||||||
backwardKeyLabel.setName(KeyMap.DOWN);
|
backwardKeyLabel.setName(KeyMap.DOWN);
|
||||||
add(backwardKeyLabel).left();
|
add(backwardKeyLabel).left();
|
||||||
KeySetter backwardKeySetter = new KeySetter(keyMap, KeyMap.DOWN);
|
KeyBindButton backwardKeySetter = new KeyBindButton(keyMap, KeyMap.DOWN);
|
||||||
add(backwardKeySetter).spaceRight(45f);
|
add(backwardKeySetter).spaceRight(45f);
|
||||||
Label sector1TPKeyLabel = new Label("Left Teleport", skin);
|
Label sector1TPKeyLabel = new Label("Left Teleport", skin);
|
||||||
sector1TPKeyLabel.setName(KeyMap.FIRSTTHIRDTELEPORT);
|
sector1TPKeyLabel.setName(KeyMap.FIRSTTHIRDTELEPORT);
|
||||||
add(sector1TPKeyLabel).left();
|
add(sector1TPKeyLabel).left();
|
||||||
KeySetter Sector1TPKeySetter = new KeySetter(keyMap, KeyMap.FIRSTTHIRDTELEPORT);
|
KeyBindButton Sector1TPKeySetter = new KeyBindButton(keyMap, KeyMap.FIRSTTHIRDTELEPORT);
|
||||||
add(Sector1TPKeySetter);
|
add(Sector1TPKeySetter);
|
||||||
|
|
||||||
row();
|
row();
|
||||||
@ -46,12 +46,12 @@ public class SetControls extends Table {
|
|||||||
Label leftKeyLabel = new Label("Left: ", skin);
|
Label leftKeyLabel = new Label("Left: ", skin);
|
||||||
leftKeyLabel.setName(KeyMap.LEFT);
|
leftKeyLabel.setName(KeyMap.LEFT);
|
||||||
add(leftKeyLabel).left();
|
add(leftKeyLabel).left();
|
||||||
KeySetter leftKeySetter = new KeySetter(keyMap, KeyMap.LEFT);
|
KeyBindButton leftKeySetter = new KeyBindButton(keyMap, KeyMap.LEFT);
|
||||||
add(leftKeySetter).spaceRight(45f);
|
add(leftKeySetter).spaceRight(45f);
|
||||||
Label sector2TPKeyLabel = new Label("Middle Teleport: ", skin);
|
Label sector2TPKeyLabel = new Label("Middle Teleport: ", skin);
|
||||||
sector2TPKeyLabel.setName(KeyMap.SECONDTHIRDTELEPORT);
|
sector2TPKeyLabel.setName(KeyMap.SECONDTHIRDTELEPORT);
|
||||||
add(sector2TPKeyLabel).left();
|
add(sector2TPKeyLabel).left();
|
||||||
KeySetter sector2TPKeySetter = new KeySetter(keyMap, KeyMap.SECONDTHIRDTELEPORT);
|
KeyBindButton sector2TPKeySetter = new KeyBindButton(keyMap, KeyMap.SECONDTHIRDTELEPORT);
|
||||||
add(sector2TPKeySetter);
|
add(sector2TPKeySetter);
|
||||||
|
|
||||||
row();
|
row();
|
||||||
@ -59,12 +59,12 @@ public class SetControls extends Table {
|
|||||||
Label rightKeyLabel = new Label("Right: ", skin);
|
Label rightKeyLabel = new Label("Right: ", skin);
|
||||||
rightKeyLabel.setName(KeyMap.RIGHT);
|
rightKeyLabel.setName(KeyMap.RIGHT);
|
||||||
add(rightKeyLabel).left();
|
add(rightKeyLabel).left();
|
||||||
KeySetter rightKeySetter = new KeySetter(keyMap, KeyMap.RIGHT);
|
KeyBindButton rightKeySetter = new KeyBindButton(keyMap, KeyMap.RIGHT);
|
||||||
add(rightKeySetter).spaceRight(45f);
|
add(rightKeySetter).spaceRight(45f);
|
||||||
Label sector3TPKeyLabel = new Label("Right Teleport: ", skin);
|
Label sector3TPKeyLabel = new Label("Right Teleport: ", skin);
|
||||||
sector3TPKeyLabel.setName(KeyMap.THIRDTHIRDTELEPORT);
|
sector3TPKeyLabel.setName(KeyMap.THIRDTHIRDTELEPORT);
|
||||||
add(sector3TPKeyLabel).left();
|
add(sector3TPKeyLabel).left();
|
||||||
KeySetter sector3TPKeySetter = new KeySetter(keyMap, KeyMap.THIRDTHIRDTELEPORT);
|
KeyBindButton sector3TPKeySetter = new KeyBindButton(keyMap, KeyMap.THIRDTHIRDTELEPORT);
|
||||||
add(sector3TPKeySetter);
|
add(sector3TPKeySetter);
|
||||||
|
|
||||||
addListener(new ClickListener() {
|
addListener(new ClickListener() {
|
@ -11,12 +11,12 @@ import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
|||||||
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
||||||
import com.badlogic.gdx.utils.Align;
|
import com.badlogic.gdx.utils.Align;
|
||||||
|
|
||||||
public class GraphicsTable extends Table {
|
public class GraphicsOptions extends Table {
|
||||||
private Label resolutions, shaders;
|
private Label resolutions, shaders;
|
||||||
|
|
||||||
private CheckBox glowShader;
|
private CheckBox glowShader;
|
||||||
|
|
||||||
private SetResolutionButton
|
private ResolutionButton
|
||||||
_3840x2160,
|
_3840x2160,
|
||||||
_2560x1440,
|
_2560x1440,
|
||||||
_1920x1200,
|
_1920x1200,
|
||||||
@ -27,7 +27,7 @@ public class GraphicsTable extends Table {
|
|||||||
_800x480;
|
_800x480;
|
||||||
|
|
||||||
|
|
||||||
public GraphicsTable(Skin skin, final Preferences pref) {
|
public GraphicsOptions(Skin skin, final Preferences pref) {
|
||||||
align(Align.center);
|
align(Align.center);
|
||||||
defaults().space(10f);
|
defaults().space(10f);
|
||||||
|
|
||||||
@ -60,35 +60,35 @@ public class GraphicsTable extends Table {
|
|||||||
add(fullscreen).fillX();
|
add(fullscreen).fillX();
|
||||||
row();
|
row();
|
||||||
|
|
||||||
_3840x2160 = new SetResolutionButton(3840, 2160, skin, pref);
|
_3840x2160 = new ResolutionButton(3840, 2160, skin, pref);
|
||||||
add(_3840x2160).fillX();
|
add(_3840x2160).fillX();
|
||||||
row();
|
row();
|
||||||
|
|
||||||
_2560x1440 = new SetResolutionButton(2560, 1440, skin, pref);
|
_2560x1440 = new ResolutionButton(2560, 1440, skin, pref);
|
||||||
add(_2560x1440).fillX();
|
add(_2560x1440).fillX();
|
||||||
row();
|
row();
|
||||||
|
|
||||||
_1920x1200 = new SetResolutionButton(1920, 1200, skin, pref);
|
_1920x1200 = new ResolutionButton(1920, 1200, skin, pref);
|
||||||
add(_1920x1200).fillX();
|
add(_1920x1200).fillX();
|
||||||
row();
|
row();
|
||||||
|
|
||||||
_1920x1080 = new SetResolutionButton(1920, 1080, skin, pref);
|
_1920x1080 = new ResolutionButton(1920, 1080, skin, pref);
|
||||||
add(_1920x1080).fillX();
|
add(_1920x1080).fillX();
|
||||||
row();
|
row();
|
||||||
|
|
||||||
_1280x800 = new SetResolutionButton(1280, 800, skin, pref);
|
_1280x800 = new ResolutionButton(1280, 800, skin, pref);
|
||||||
add(_1280x800).fillX();
|
add(_1280x800).fillX();
|
||||||
row();
|
row();
|
||||||
|
|
||||||
_1280x720 = new SetResolutionButton(1280, 720, skin, pref);
|
_1280x720 = new ResolutionButton(1280, 720, skin, pref);
|
||||||
add(_1280x720).fillX();
|
add(_1280x720).fillX();
|
||||||
row();
|
row();
|
||||||
|
|
||||||
_1366x768 = new SetResolutionButton(1366, 768, skin, pref);
|
_1366x768 = new ResolutionButton(1366, 768, skin, pref);
|
||||||
add(_1366x768).fillX();
|
add(_1366x768).fillX();
|
||||||
row();
|
row();
|
||||||
|
|
||||||
_800x480 = new SetResolutionButton(800, 480, skin, pref);
|
_800x480 = new ResolutionButton(800, 480, skin, pref);
|
||||||
add(_800x480).fillX();
|
add(_800x480).fillX();
|
||||||
row();
|
row();
|
||||||
}
|
}
|
@ -12,11 +12,11 @@ import com.badlogic.gdx.scenes.scene2d.actions.Actions;
|
|||||||
|
|
||||||
import zero1hd.rhythmbullet.controls.KeyMap;
|
import zero1hd.rhythmbullet.controls.KeyMap;
|
||||||
|
|
||||||
public class KeySetter extends Actor {
|
public class KeyBindButton extends Actor {
|
||||||
TextureRegion keyIcon;
|
TextureRegion keyIcon;
|
||||||
KeyMap keyMap;
|
KeyMap keyMap;
|
||||||
|
|
||||||
public KeySetter(final KeyMap keyMap, final String control) {
|
public KeyBindButton(final KeyMap keyMap, final String control) {
|
||||||
this.keyMap = keyMap;
|
this.keyMap = keyMap;
|
||||||
keyIcon = keyMap.getIcon(keyMap.stringToID(control));
|
keyIcon = keyMap.getIcon(keyMap.stringToID(control));
|
||||||
setSize(keyIcon.getRegionWidth(), keyIcon.getRegionHeight());
|
setSize(keyIcon.getRegionWidth(), keyIcon.getRegionHeight());
|
@ -10,9 +10,9 @@ import com.badlogic.gdx.scenes.scene2d.ui.Skin;
|
|||||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||||
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
||||||
|
|
||||||
public class SetResolutionButton extends TextButton {
|
public class ResolutionButton extends TextButton {
|
||||||
|
|
||||||
public SetResolutionButton(final int width, final int height, Skin skin, final Preferences prefs) {
|
public ResolutionButton(final int width, final int height, Skin skin, final Preferences prefs) {
|
||||||
super(width + "x" + height, skin);
|
super(width + "x" + height, skin);
|
||||||
|
|
||||||
Dimension screenDim = Toolkit.getDefaultToolkit().getScreenSize();
|
Dimension screenDim = Toolkit.getDefaultToolkit().getScreenSize();
|
@ -3,14 +3,17 @@ package zero1hd.rhythmbullet.graphics.ui.components;
|
|||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
import com.badlogic.gdx.assets.AssetManager;
|
import com.badlogic.gdx.assets.AssetManager;
|
||||||
import com.badlogic.gdx.graphics.Color;
|
import com.badlogic.gdx.graphics.Color;
|
||||||
import com.badlogic.gdx.graphics.OrthographicCamera;
|
|
||||||
import com.badlogic.gdx.graphics.Pixmap;
|
import com.badlogic.gdx.graphics.Pixmap;
|
||||||
import com.badlogic.gdx.graphics.Pixmap.Format;
|
import com.badlogic.gdx.graphics.Pixmap.Format;
|
||||||
import com.badlogic.gdx.graphics.Texture;
|
import com.badlogic.gdx.graphics.Texture;
|
||||||
import com.badlogic.gdx.graphics.g2d.Batch;
|
import com.badlogic.gdx.graphics.g2d.Batch;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.ParticleEffect;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.ParticleEffectPool;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.ParticleEffectPool.PooledEffect;
|
||||||
import com.badlogic.gdx.math.MathUtils;
|
import com.badlogic.gdx.math.MathUtils;
|
||||||
import com.badlogic.gdx.scenes.scene2d.Group;
|
import com.badlogic.gdx.scenes.scene2d.Group;
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
||||||
|
import com.badlogic.gdx.utils.Array;
|
||||||
import com.badlogic.gdx.utils.Disposable;
|
import com.badlogic.gdx.utils.Disposable;
|
||||||
|
|
||||||
import zero1hd.rhythmbullet.audio.visualizer.MirrorVisualizer;
|
import zero1hd.rhythmbullet.audio.visualizer.MirrorVisualizer;
|
||||||
@ -20,7 +23,13 @@ public class TitleBarVisualizer extends Group implements Disposable {
|
|||||||
private MirrorVisualizer visual2;
|
private MirrorVisualizer visual2;
|
||||||
private Texture bgTexture;
|
private Texture bgTexture;
|
||||||
private Image bg;
|
private Image bg;
|
||||||
public TitleBarVisualizer(AssetManager assets, OrthographicCamera camera) {
|
private Image titleImage;
|
||||||
|
|
||||||
|
//Particle pools;
|
||||||
|
ParticleEffectPool beatEffectPool;
|
||||||
|
Array<PooledEffect> effects = new Array<>();
|
||||||
|
|
||||||
|
public TitleBarVisualizer(AssetManager assets) {
|
||||||
if (assets == null) throw new NullPointerException("TitleBarVisualizer requires assets manager... ITS NULL YOU FOOL");
|
if (assets == null) throw new NullPointerException("TitleBarVisualizer requires assets manager... ITS NULL YOU FOOL");
|
||||||
visual = new Visualizer();
|
visual = new Visualizer();
|
||||||
visual.getVis().setSpaceBetweenBars(visual.getVis().getBarWidth()-1);
|
visual.getVis().setSpaceBetweenBars(visual.getVis().getBarWidth()-1);
|
||||||
@ -37,24 +46,55 @@ public class TitleBarVisualizer extends Group implements Disposable {
|
|||||||
visual.getVis().addMirrorVisualizer(visual2);
|
visual.getVis().addMirrorVisualizer(visual2);
|
||||||
visual2.setyPos(MathUtils.round(getHeight()));
|
visual2.setyPos(MathUtils.round(getHeight()));
|
||||||
|
|
||||||
Pixmap pixmap = new Pixmap(2, 2, Format.RGBA8888);
|
Pixmap pixmap = new Pixmap(MathUtils.round(getWidth()), MathUtils.round(getHeight()), Format.RGBA8888);
|
||||||
pixmap.setColor(Color.WHITE);
|
pixmap.setColor(Color.WHITE);
|
||||||
pixmap.fill();
|
pixmap.drawLine(0, 0, pixmap.getWidth(), 0);
|
||||||
|
pixmap.drawLine(0, pixmap.getHeight()-1, pixmap.getWidth(), pixmap.getHeight()-1);
|
||||||
bgTexture = new Texture(pixmap);
|
bgTexture = new Texture(pixmap);
|
||||||
pixmap.dispose();
|
pixmap.dispose();
|
||||||
setColor(0.451f, 0, 0, 1f);
|
|
||||||
|
|
||||||
bg = new Image(bgTexture);
|
bg = new Image(bgTexture);
|
||||||
bg.setSize(getWidth(), getHeight());
|
bg.setSize(getWidth(), getHeight());
|
||||||
addActor(bg);
|
addActor(bg);
|
||||||
|
|
||||||
|
titleImage = new Image(assets.get("title.png", Texture.class));
|
||||||
|
titleImage.setScale((bg.getHeight()-(0.1f*Gdx.graphics.getHeight()))/titleImage.getHeight());
|
||||||
|
|
||||||
|
if (titleImage.getWidth() > 0.8f*getWidth()) {
|
||||||
|
titleImage.setScale((bg.getWidth()-(0.2f*Gdx.graphics.getWidth()))/titleImage.getWidth());
|
||||||
|
}
|
||||||
|
titleImage.setPosition((getWidth() - titleImage.getWidth())/2f, (getHeight() - titleImage.getHeight())/2f -10);
|
||||||
|
titleImage.setColor(Color.WHITE);
|
||||||
|
addActor(titleImage);
|
||||||
|
|
||||||
|
beatEffectPool = new ParticleEffectPool(assets.get("beateffect.p", ParticleEffect.class), 0, 5) {
|
||||||
|
@Override
|
||||||
|
protected PooledEffect newObject() {
|
||||||
|
PooledEffect effect = super.newObject();
|
||||||
|
effect.scaleEffect(Gdx.graphics.getWidth()/64f);
|
||||||
|
return effect;
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void act(float delta) {
|
public void act(float delta) {
|
||||||
|
if (visual.getVis().getCurrentAvg() > visual.getVis().getMaxAvgHeight()*0.55f) {
|
||||||
|
PooledEffect effect = beatEffectPool.obtain();
|
||||||
|
effect.setPosition(0, 0);
|
||||||
|
effects.add(effect);
|
||||||
|
}
|
||||||
super.act(delta);
|
super.act(delta);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void draw(Batch batch, float parentAlpha) {
|
public void draw(Batch batch, float parentAlpha) {
|
||||||
|
for (int i = 0; i < effects.size; i++) {
|
||||||
|
effects.get(i).draw(batch, Gdx.graphics.getDeltaTime());
|
||||||
|
if (effects.get(i).isComplete()) {
|
||||||
|
effects.get(i).free();
|
||||||
|
effects.removeIndex(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
super.draw(batch, parentAlpha);
|
super.draw(batch, parentAlpha);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,8 +109,6 @@ public class TitleBarVisualizer extends Group implements Disposable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setColor(Color color) {
|
public void setColor(Color color) {
|
||||||
bg.setColor(getColor());
|
|
||||||
visual.setColor(getColor());
|
|
||||||
super.setColor(color);
|
super.setColor(color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,4 +75,5 @@ public class Visualizer extends Widget {
|
|||||||
public BasicVisualizer getVis() {
|
public BasicVisualizer getVis() {
|
||||||
return vis;
|
return vis;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ public class MainPage extends Page implements OnDifferentSongListener {
|
|||||||
public MainPage(RhythmBullet core, Vector3 targetPosition, SongListController sc, OrthographicCamera camera) {
|
public MainPage(RhythmBullet core, Vector3 targetPosition, SongListController sc, OrthographicCamera camera) {
|
||||||
this.sc = sc;
|
this.sc = sc;
|
||||||
|
|
||||||
titleBar = new TitleBarVisualizer(core.getAssetManager(), camera);
|
titleBar = new TitleBarVisualizer(core.getAssetManager());
|
||||||
addActor(titleBar);
|
addActor(titleBar);
|
||||||
|
|
||||||
titleBar.getHvisual().setMM(sc.getCurrentSong());
|
titleBar.getHvisual().setMM(sc.getCurrentSong());
|
||||||
|
@ -9,16 +9,16 @@ import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
|||||||
|
|
||||||
import zero1hd.rhythmbullet.RhythmBullet;
|
import zero1hd.rhythmbullet.RhythmBullet;
|
||||||
import zero1hd.rhythmbullet.controls.KeyMap;
|
import zero1hd.rhythmbullet.controls.KeyMap;
|
||||||
import zero1hd.rhythmbullet.graphics.ui.components.GraphicsTable;
|
import zero1hd.rhythmbullet.graphics.ui.components.GraphicsOptions;
|
||||||
import zero1hd.rhythmbullet.graphics.ui.components.SetControls;
|
import zero1hd.rhythmbullet.graphics.ui.components.ControlOptions;
|
||||||
|
|
||||||
public class MoreOptionsPage extends Page {
|
public class MoreOptionsPage extends Page {
|
||||||
private KeyMap keymap;
|
private KeyMap keymap;
|
||||||
private ScrollPane controlsScroller;
|
private ScrollPane controlsScroller;
|
||||||
private SetControls controlSetter;
|
private ControlOptions controlSetter;
|
||||||
|
|
||||||
private ScrollPane graphicsScroller;
|
private ScrollPane graphicsScroller;
|
||||||
private GraphicsTable graphicsSettings;
|
private GraphicsOptions graphicsSettings;
|
||||||
|
|
||||||
|
|
||||||
public MoreOptionsPage(RhythmBullet core, final Vector3 targetLocation) {
|
public MoreOptionsPage(RhythmBullet core, final Vector3 targetLocation) {
|
||||||
@ -34,7 +34,7 @@ public class MoreOptionsPage extends Page {
|
|||||||
});
|
});
|
||||||
addActor(backArrow);
|
addActor(backArrow);
|
||||||
|
|
||||||
controlSetter = new SetControls(core.getDefaultSkin(), keymap);
|
controlSetter = new ControlOptions(core.getDefaultSkin(), keymap);
|
||||||
controlsScroller = new ScrollPane(controlSetter, core.getDefaultSkin());
|
controlsScroller = new ScrollPane(controlSetter, core.getDefaultSkin());
|
||||||
controlsScroller.setFadeScrollBars(false);
|
controlsScroller.setFadeScrollBars(false);
|
||||||
controlsScroller.setSize(getWidth()-backArrow.getWidth()-backArrow.getX()-10, getHeight());
|
controlsScroller.setSize(getWidth()-backArrow.getWidth()-backArrow.getX()-10, getHeight());
|
||||||
@ -42,7 +42,7 @@ public class MoreOptionsPage extends Page {
|
|||||||
addActor(controlsScroller);
|
addActor(controlsScroller);
|
||||||
controlsScroller.setVisible(false);
|
controlsScroller.setVisible(false);
|
||||||
|
|
||||||
graphicsSettings = new GraphicsTable(core.getDefaultSkin(), core.getPrefs());
|
graphicsSettings = new GraphicsOptions(core.getDefaultSkin(), core.getPrefs());
|
||||||
graphicsScroller = new ScrollPane(graphicsSettings, core.getDefaultSkin());
|
graphicsScroller = new ScrollPane(graphicsSettings, core.getDefaultSkin());
|
||||||
graphicsScroller.setFadeScrollBars(false);
|
graphicsScroller.setFadeScrollBars(false);
|
||||||
graphicsScroller.setSize(getWidth()-backArrow.getWidth()-backArrow.getX()-10, getHeight());
|
graphicsScroller.setSize(getWidth()-backArrow.getWidth()-backArrow.getX()-10, getHeight());
|
||||||
@ -68,7 +68,7 @@ public class MoreOptionsPage extends Page {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public GraphicsTable getGraphicsSettings() {
|
public GraphicsOptions getGraphicsSettings() {
|
||||||
return graphicsSettings;
|
return graphicsSettings;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user