From fdafba21272298d90bc3e684d6b6718fd02fc65d Mon Sep 17 00:00:00 2001 From: Recrown Date: Sun, 1 Oct 2017 12:42:13 -0500 Subject: [PATCH] rewrite the mirror visualizer --- .../audio/visualizer/BasicVisualizer.java | 13 ++-- .../audio/visualizer/MirrorVisualizer.java | 62 +++++++++++-------- .../ui/components/TitleBarVisualizer.java | 9 ++- .../graphics/ui/components/Visualizer.java | 5 -- 4 files changed, 52 insertions(+), 37 deletions(-) diff --git a/core/src/zero1hd/rhythmbullet/audio/visualizer/BasicVisualizer.java b/core/src/zero1hd/rhythmbullet/audio/visualizer/BasicVisualizer.java index e66f436..db5ad24 100755 --- a/core/src/zero1hd/rhythmbullet/audio/visualizer/BasicVisualizer.java +++ b/core/src/zero1hd/rhythmbullet/audio/visualizer/BasicVisualizer.java @@ -40,7 +40,8 @@ public class BasicVisualizer extends VisualizerCore { angleRot = new Vector2(MathUtils.cosDeg(rotation), MathUtils.sinDeg(rotation)); textures = new Texture[barCount]; bars = new Sprite[barCount]; - + spaceBetweenBars = 4; + for (int i = 0; i < textures.length; i++) { textures[i] = new Texture(pixmap); bars[i] = new Sprite(textures[i]); @@ -82,7 +83,7 @@ public class BasicVisualizer extends VisualizerCore { } for (int i = 0; i < mirrors.size; i++) { - mirrors.get(i).render(bars, batch); + mirrors.get(i).render(batch, parentAlpha, bars); } } super.render(batch, parentAlpha); @@ -107,7 +108,6 @@ public class BasicVisualizer extends VisualizerCore { angleRot.set(MathUtils.cosDeg(rotation), MathUtils.sinDeg(rotation)); barWidth = MathUtils.ceil((float) width/(float) barCount); - spaceBetweenBars = 1; barWidth -= spaceBetweenBars; for (int i = 0; i < bars.length; i++) { @@ -120,7 +120,7 @@ public class BasicVisualizer extends VisualizerCore { bars[i].setPosition(xPos + barSpace*angleRot.x, yPos + barSpace*angleRot.y); } for (int i = 0; i < mirrors.size; i++) { - mirrors.get(i).updatePositioning(bars, barSpace); + mirrors.get(i).position(barWidth, spaceBetweenBars); } } @@ -149,10 +149,15 @@ public class BasicVisualizer extends VisualizerCore { } public void addMirrorVisualizer(MirrorVisualizer mirror) { + mirror.setup(bars, barWidth, spaceBetweenBars, (int) width); mirrors.add(mirror); } public void removeMirrorVisualizer(MirrorVisualizer mirror) { mirrors.removeValue(mirror, true); } + + public void setSpaceBetweenBars(int spaceBetweenBars) { + this.spaceBetweenBars = spaceBetweenBars; + } } diff --git a/core/src/zero1hd/rhythmbullet/audio/visualizer/MirrorVisualizer.java b/core/src/zero1hd/rhythmbullet/audio/visualizer/MirrorVisualizer.java index 08cb7d9..991fca1 100644 --- a/core/src/zero1hd/rhythmbullet/audio/visualizer/MirrorVisualizer.java +++ b/core/src/zero1hd/rhythmbullet/audio/visualizer/MirrorVisualizer.java @@ -6,55 +6,63 @@ import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.math.Vector2; public class MirrorVisualizer { - private Sprite[] bars; - private float rotation; private int xPos, yPos; - private Vector2 angleRot; + private float rotation; + private Sprite[] bars; private boolean flip; - protected void setup(Sprite[] sprites, float rotation, int x, int y, Vector2 angleRot) { - this.xPos = x; - this.yPos = y; - this.angleRot = angleRot; - - bars = new Sprite[sprites.length]; + + private Vector2 rectCoordRot; + public MirrorVisualizer() { + rectCoordRot = new Vector2(); + } + + protected void setup(Sprite[] bars, int xPos, int yPos, float rotation) { + this.bars = new Sprite[bars.length]; + this.xPos = xPos; + this.yPos = yPos; + this.rotation = rotation; + rectCoordRot.set(MathUtils.cosDeg(rotation), MathUtils.sinDeg(rotation)); + for (int i = 0; i < bars.length; i++) { - bars[i] = new Sprite(sprites[i]); + this.bars[i] = new Sprite(bars[i]); } } - protected void render(Sprite[] sprites, Batch batch) { - for (int i = 0; i < sprites.length; i++) { - bars[i].setSize(bars[i].getWidth(), sprites[i].getHeight()); - bars[i].draw(batch); + public void render(Batch batch, float parentAlpha, Sprite[] bars) { + for (int i = 0; i < this.bars.length; i++) { + this.bars[i].setSize(bars[i].getWidth(), bars[i].getHeight()); + this.bars[i].draw(batch); } } - public void updatePositioning(Sprite[] sprites, int barSpace) { - angleRot.set(MathUtils.cosDeg(rotation), MathUtils.sinDeg(rotation)); - for (int i = 0; i < sprites.length; i++) { - bars[i].set(sprites[i]); - bars[i].setPosition(xPos + barSpace*angleRot.x, yPos + barSpace*angleRot.y); + public void position(int barWidth, int spaceBetweenBars) { + int barSpaceMultiplier = barWidth + spaceBetweenBars; + + for (int i = 0; i < bars.length; i ++) { if (flip) { bars[i].setRotation(rotation+180); } else { bars[i].setRotation(rotation); } + + bars[i].setPosition(xPos + i*barSpaceMultiplier*rectCoordRot.x, yPos + i*barSpaceMultiplier*rectCoordRot.y); } } - public void flip() { - flip = flip ? false : true; + public float getRotation() { + return rotation; } - public boolean isFlipped() { - return flip; - } - - public void setxPos(int xPos) { - this.xPos = xPos; + public void setRotation(float rotation) { + this.rotation = rotation; } public void setyPos(int yPos) { this.yPos = yPos; } + + public void setxPos(int xPos) { + this.xPos = xPos; + } + } diff --git a/core/src/zero1hd/rhythmbullet/graphics/ui/components/TitleBarVisualizer.java b/core/src/zero1hd/rhythmbullet/graphics/ui/components/TitleBarVisualizer.java index daaf148..0a29280 100755 --- a/core/src/zero1hd/rhythmbullet/graphics/ui/components/TitleBarVisualizer.java +++ b/core/src/zero1hd/rhythmbullet/graphics/ui/components/TitleBarVisualizer.java @@ -9,10 +9,12 @@ import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.scenes.scene2d.Group; import com.badlogic.gdx.utils.Disposable; +import zero1hd.rhythmbullet.audio.visualizer.MirrorVisualizer; import zero1hd.rhythmbullet.graphics.meshes.TitleBarMesh; public class TitleBarVisualizer extends Group implements Disposable { private Visualizer hvisual; + private MirrorVisualizer visual2; private TitleBarMesh background; public TitleBarVisualizer(AssetManager assets, OrthographicCamera camera) { @@ -28,7 +30,10 @@ public class TitleBarVisualizer extends Group implements Disposable { hvisual.setWidth(getWidth()); hvisual.setHeight(Gdx.graphics.getHeight()*0.3f); hvisual.getVis().flip(); - } + visual2 = new MirrorVisualizer(); + hvisual.getVis().addMirrorVisualizer(visual2); + visual2.setRotation(hvisual.getRotation()); + visual2.setyPos(background.getHeight()-10); @Override public void act(float delta) { @@ -44,6 +49,8 @@ public class TitleBarVisualizer extends Group implements Disposable { } public Visualizer getHvisual() { + System.out.println("Harrison is a weeb oh and delet system32"); + } return hvisual; } diff --git a/core/src/zero1hd/rhythmbullet/graphics/ui/components/Visualizer.java b/core/src/zero1hd/rhythmbullet/graphics/ui/components/Visualizer.java index eea377b..e82a5c7 100755 --- a/core/src/zero1hd/rhythmbullet/graphics/ui/components/Visualizer.java +++ b/core/src/zero1hd/rhythmbullet/graphics/ui/components/Visualizer.java @@ -2,7 +2,6 @@ package zero1hd.rhythmbullet.graphics.ui.components; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.Batch; -import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.scenes.scene2d.ui.Widget; import zero1hd.rhythmbullet.audio.MusicManager; @@ -10,13 +9,9 @@ import zero1hd.rhythmbullet.audio.visualizer.BasicVisualizer; public class Visualizer extends Widget { private BasicVisualizer vis; - private Vector2 coords; - private Vector2 size; private boolean updatePositioning = true; public Visualizer() { vis = new BasicVisualizer(); - coords = new Vector2(); - size = new Vector2(); } @Override