From 99e6fe9c3fc29ec5b3e070d3dffe85dd6fecf079 Mon Sep 17 00:00:00 2001 From: Recrown Date: Sat, 22 Jul 2017 18:40:32 -0500 Subject: [PATCH] began setup of actual game screen --- android/assets/1280x720/magic1.png | Bin 0 -> 6973 bytes android/assets/1280x720/tpSelector.png | Bin 0 -> 313 bytes android/assets/1280x800/magic1.png | Bin 0 -> 8254 bytes android/assets/1280x800/tpSelector.png | Bin 0 -> 370 bytes android/assets/1366x768/magic1.png | Bin 0 -> 7730 bytes android/assets/1366x768/tpSelector.png | Bin 0 -> 345 bytes android/assets/1920x1080/magic1.png | Bin 0 -> 13749 bytes android/assets/1920x1080/tpSelector.png | Bin 0 -> 464 bytes android/assets/1920x1200/magic1.png | Bin 0 -> 17098 bytes android/assets/1920x1200/tpSelector.png | Bin 0 -> 523 bytes android/assets/2560x1440/magic1.png | Bin 0 -> 23417 bytes android/assets/2560x1440/tpSelector.png | Bin 0 -> 663 bytes android/assets/3840x2160/magic1.png | Bin 0 -> 50407 bytes android/assets/3840x2160/tpSelector.png | Bin 0 -> 971 bytes android/assets/800x480/magic1.png | Bin 0 -> 3369 bytes android/assets/800x480/tpSelector.png | Bin 0 -> 202 bytes android/assets/uiskin.atlas | 16 +- android/assets/uiskin.png | Bin 4662 -> 4655 bytes .../src/zero1hd/polyjet/AndroidLauncher.java | 4 +- .../polyjet/{Polyjet.java => Main.java} | 4 +- .../polyjet/audio/map/RhythmMapAlgorithm.java | 16 +- core/src/zero1hd/polyjet/controls/KeyMap.java | 4 +- .../polyjet/entity/CollisionDetector.java | 4 +- .../zero1hd/polyjet/entity/ally/Laser.java | 4 +- .../polyjet/entity/ally/PolyJetEntity.java | 4 +- .../zero1hd/polyjet/entity/enemies/Bar.java | 4 +- .../zero1hd/polyjet/entity/enemies/Flake.java | 4 +- .../polyjet/entity/enemies/Pellet.java | 4 +- .../zero1hd/polyjet/entity/enemies/Shard.java | 4 +- .../polyjet/screens/CreativeDebugScreen.java | 10 +- .../zero1hd/polyjet/screens/GameScreen.java | 204 +++--------------- .../polyjet/screens/LoadingScreen.java | 6 +- .../src/zero1hd/polyjet/screens/MainMenu.java | 6 +- .../polyjet/screens/PreGameScreen.java | 12 +- .../polyjet/ui/builders/HealthBar.java | 52 +++++ .../zero1hd/polyjet/ui/pages/AnalyzePage.java | 34 ++- .../zero1hd/polyjet/ui/pages/MainPage.java | 6 +- .../polyjet/ui/pages/MoreOptionsPage.java | 4 +- .../polyjet/ui/pages/MusicSelectionPage.java | 6 +- .../zero1hd/polyjet/ui/pages/OptionsPage.java | 6 +- .../{CreativeStage.java => CreativeHUD.java} | 6 +- .../zero1hd/polyjet/ui/stages/GameHUD.java | 126 +++++++++++ .../polyjet/ui/stages/GamePlayArea.java | 37 ++-- .../zero1hd/polyjet/ui/windows/PauseMenu.java | 31 +++ .../polyjet/desktop/DesktopLauncher.java | 4 +- 45 files changed, 359 insertions(+), 263 deletions(-) create mode 100755 android/assets/1280x720/magic1.png create mode 100755 android/assets/1280x720/tpSelector.png create mode 100755 android/assets/1280x800/magic1.png create mode 100755 android/assets/1280x800/tpSelector.png create mode 100755 android/assets/1366x768/magic1.png create mode 100755 android/assets/1366x768/tpSelector.png create mode 100755 android/assets/1920x1080/magic1.png create mode 100755 android/assets/1920x1080/tpSelector.png create mode 100755 android/assets/1920x1200/magic1.png create mode 100755 android/assets/1920x1200/tpSelector.png create mode 100755 android/assets/2560x1440/magic1.png create mode 100755 android/assets/2560x1440/tpSelector.png create mode 100755 android/assets/3840x2160/magic1.png create mode 100755 android/assets/3840x2160/tpSelector.png create mode 100755 android/assets/800x480/magic1.png create mode 100755 android/assets/800x480/tpSelector.png rename core/src/zero1hd/polyjet/{Polyjet.java => Main.java} (98%) create mode 100755 core/src/zero1hd/polyjet/ui/builders/HealthBar.java rename core/src/zero1hd/polyjet/ui/stages/{CreativeStage.java => CreativeHUD.java} (94%) create mode 100755 core/src/zero1hd/polyjet/ui/stages/GameHUD.java create mode 100755 core/src/zero1hd/polyjet/ui/windows/PauseMenu.java diff --git a/android/assets/1280x720/magic1.png b/android/assets/1280x720/magic1.png new file mode 100755 index 0000000000000000000000000000000000000000..e24db14be6582469ada5702ebac0bc84bee078e2 GIT binary patch literal 6973 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 P00000NkvXXu0mjf{FPHq literal 0 HcmV?d00001 diff --git a/android/assets/1280x720/tpSelector.png b/android/assets/1280x720/tpSelector.png new file mode 100755 index 0000000000000000000000000000000000000000..0796baff4ac6b5e57a7dd875e6612bdb1e407270 GIT binary patch literal 313 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
    fMe9I70?>P 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 Q-2eap07*qoM6N<$g0s=3>i_@% literal 0 HcmV?d00001 diff --git a/android/assets/1366x768/magic1.png b/android/assets/1366x768/magic1.png new file mode 100755 index 0000000000000000000000000000000000000000..ab2fefd163fd3a1c25152fbd67bd0537480698ed GIT binary patch literal 7730 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 literal 0 HcmV?d00001 diff --git a/android/assets/1366x768/tpSelector.png b/android/assets/1366x768/tpSelector.png new file mode 100755 index 0000000000000000000000000000000000000000..d8eb20c408ff4918c81103690c3aff4870e4f988 GIT binary patch literal 345 zcmV-f0jB&wZZbc|P}CDi!%9Npcb!JisJ0SjH=czQKKTkcV*x_t3+d zo*R2`7av%+u9?Nb4&G64W;F7*t#@vCo@X8y;~Cd#%ME;^q>j)+#ts-~+FKmP0(mWI z*&EQ%InH8%6?ErS`vMv|#$POu!A~rZ##bz`iD~E|m$cncC{RQ_R8$Txva+E-1vlQR zwV*au?Z5;Be4>w2ceyW7lg06VFnVx>M`S|*Y3&|W>EK_$Dn|l$i;!<$Wbq)csW%wk r8c0!3xWHRzZ_4M^z;A4K%S_D~bQQX+-R=@o00000NkvXXu0mjfK!TL` literal 0 HcmV?d00001 diff --git a/android/assets/1920x1080/magic1.png b/android/assets/1920x1080/magic1.png new file mode 100755 index 0000000000000000000000000000000000000000..8d270ee88fb96966f1575aa48778dd51d935d4b4 GIT binary patch literal 13749 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 N002ovPDHLkV1lRS;J^R? literal 0 HcmV?d00001 diff --git a/android/assets/2560x1440/magic1.png b/android/assets/2560x1440/magic1.png new file mode 100755 index 0000000000000000000000000000000000000000..5ac0cb71ec944f9201fc86dab764442a47953647 GIT binary patch literal 23417 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 literal 0 HcmV?d00001 diff --git a/android/assets/2560x1440/tpSelector.png b/android/assets/2560x1440/tpSelector.png new file mode 100755 index 0000000000000000000000000000000000000000..de16a8de71dbf59f8ab3d5bf0734710bb4313899 GIT binary patch literal 663 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 literal 0 HcmV?d00001 diff --git a/android/assets/3840x2160/tpSelector.png b/android/assets/3840x2160/tpSelector.png new file mode 100755 index 0000000000000000000000000000000000000000..465ef5d6ec49ed0be3b63f11098a6d866a8ee583 GIT binary patch literal 971 zcmeAS@N?(olHy`uVBq!ia0vp^;y@h5!3HFQ-<%Z!QjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`ISV`@iy0XB4ude`@%$AjKtah8*NBqf{Irtt#G+J&g2c?c61}|C5(N`I z13g1Cm(2BF85o$YJzX3_GMu;0)SWC6$m1%=!NSxSu~DeeK|z2+Ws-b@gTjPA3@l9j zE(#MlRG2y)*0}UJD1cQ-yxZ#&bTg!C*XLc&L*~x<;;ojyeY<_!_qdzyzc2r^M(WNX z;~lGoviI`sKV-Di&FmkOYpB7irN@?NNg0~`EBv9uz5Cg*?f=_L3y-fdJnpLZ&f@Bf zu82DyBa*cq9SC|Z6+DssdCa95U0Q}uFC7aB={&Xi1G7qT@5&WIH*fqf-^0Cn*NPQF z7w`OFT=QzvBCi>XK{6%2$y%$9+&UKWk;cP8FAHh$-;7_o>2Ni9hiiH_)URlaE_J?3$Kd zd4`kU!AEZ*@755u^9c~n)ZHxw;)UTicYI)oSfu@bMN55(w6Gk5cgfR-Ck{_)SLYAz z18Vx?blrTy2bRa%J}?}4v~G{che;0aWbLLJd=lUFDaq~4qh*fD;^j|MXG~9SZ+6p@ z`)F8Vk?`bDV6N&KUS;v#DtWFviJcj}hnOdDU(*1&8q9Rt`g@I8PmIYcPd}w!99A+0 zMTz0}Z2ZdF?Ao6^`mhpY z5D%$qQqi;021eA5m^}M-y`^7SYA>b#pS*ADf@pt*M+c?}ci7BOpHcnUa_I`8IS1qx zP1_T-RwT5kERHL@ODl2ROox!p7cW>Ad8N3k34|`%WZk$zD7XyBd^E#bT_7~+oGQ?O z9ana8y2!kcQh#tu_1-rZ9l43Z8w@*zJ7R1W{Zr-X^i^2(NbobuA}twHKZR9`Oyg!P m(27{?AE3HjK=@7he}?BAf*-6Uo(BT+8iS{+pUXO@geCwI7?t4w literal 0 HcmV?d00001 diff --git a/android/assets/800x480/magic1.png b/android/assets/800x480/magic1.png new file mode 100755 index 0000000000000000000000000000000000000000..9bb569f76ad3a87459f6bcea95bdeaf7b82ae918 GIT binary patch literal 3369 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 literal 0 HcmV?d00001 diff --git a/android/assets/800x480/tpSelector.png b/android/assets/800x480/tpSelector.png new file mode 100755 index 0000000000000000000000000000000000000000..28de94e50f89b5cca3a7436e843e17d0bc31f769 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^tUxTn!3HE4 zQBsLxse&DdGo#OU183}R1A+OD;%8VNNu{W3G8KxP@r-WRA<%KVafYbc46Y+#8uwa^ yHZ|N}iJc($s=T&Dy-B6Jv4U-vg0X-<69eDkQ)kcUv9AO=j=|H_&t;ucLK6VFdqsEv literal 0 HcmV?d00001 diff --git a/android/assets/uiskin.atlas b/android/assets/uiskin.atlas index b0efc84..0fab7e0 100755 --- a/android/assets/uiskin.atlas +++ b/android/assets/uiskin.atlas @@ -237,18 +237,18 @@ pause-down index: -1 bar-empty rotate: false - xy: 106, 13 - size: 26, 7 - split: 0, 0, 1, 1 - orig: 32, 32 + xy: 105, 13 + size: 13, 3 + split: 0, 0, 0, 0 + orig: 13, 3 offset: 0, 0 index: -1 bar-fill rotate: false - xy: 106, 21 - size: 26, 7 - split: 0, 0, 1, 1 - orig: 26, 7 + xy: 119, 13 + size: 13, 3 + split: 1, 1, 1, 1 + orig: 13, 3 offset: 0, 0 index: -1 left-button diff --git a/android/assets/uiskin.png b/android/assets/uiskin.png index 1e2c6e60b0b811353f49e03831743c685cd0d282..1313bd85749a31a955c8a66e85db1ab44324c0d6 100755 GIT binary patch literal 4655 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 a5_4dY?_;^~uehn-!I>CXTrAV`xc5ItYoAj9 diff --git a/android/src/zero1hd/polyjet/AndroidLauncher.java b/android/src/zero1hd/polyjet/AndroidLauncher.java index c88b7b8..8e468cf 100755 --- a/android/src/zero1hd/polyjet/AndroidLauncher.java +++ b/android/src/zero1hd/polyjet/AndroidLauncher.java @@ -4,13 +4,13 @@ import android.os.Bundle; import com.badlogic.gdx.backends.android.AndroidApplication; import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; public class AndroidLauncher extends AndroidApplication { @Override protected void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); AndroidApplicationConfiguration config = new AndroidApplicationConfiguration(); - initialize(new Polyjet(), config); + initialize(new Main(), config); } } diff --git a/core/src/zero1hd/polyjet/Polyjet.java b/core/src/zero1hd/polyjet/Main.java similarity index 98% rename from core/src/zero1hd/polyjet/Polyjet.java rename to core/src/zero1hd/polyjet/Main.java index 2e4543e..01419e8 100755 --- a/core/src/zero1hd/polyjet/Polyjet.java +++ b/core/src/zero1hd/polyjet/Main.java @@ -36,7 +36,7 @@ import zero1hd.polyjet.util.GenericFileTypeHandler; import zero1hd.polyjet.util.RoundingResolutionHandler; import zero1hd.polyjet.screens.LoadingScreen; -public class Polyjet extends Game { +public class Main extends Game { private boolean initComplete = false; public static final int GAME_AREA_WIDTH = 64; @@ -134,6 +134,8 @@ public class Polyjet extends Game { assetManager.load("explosion.ogg", Sound.class); assetManager.load("disintegrate.ogg", Sound.class); assetManager.load("explosion-s.p", ParticleEffect.class); + assetManager.load("tpSelector.png", Texture.class); + assetManager.load("magic1.png", Texture.class); } public void generateFonts() { initComplete = true; diff --git a/core/src/zero1hd/polyjet/audio/map/RhythmMapAlgorithm.java b/core/src/zero1hd/polyjet/audio/map/RhythmMapAlgorithm.java index d19bdd9..5d74048 100755 --- a/core/src/zero1hd/polyjet/audio/map/RhythmMapAlgorithm.java +++ b/core/src/zero1hd/polyjet/audio/map/RhythmMapAlgorithm.java @@ -5,7 +5,7 @@ import org.apache.commons.math3.random.MersenneTwister; import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.utils.FloatArray; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; import zero1hd.polyjet.audio.AudioAnalyzer; import zero1hd.polyjet.entity.Entities; import zero1hd.polyjet.util.MiniEvents; @@ -59,29 +59,29 @@ public class RhythmMapAlgorithm implements Runnable { if (bassPeaks.get(index) >= avgBass) { //TODO basic void circle spawning float warningTime = map.goBack((int) (windowPerSecond*1.5f))/windowPerSecond; - float endRadius = (bassPeaks.get(index)/bassMax)*(Polyjet.GAME_AREA_HEIGHT/4f); + float endRadius = (bassPeaks.get(index)/bassMax)*(Main.GAME_AREA_HEIGHT/4f); map.addToMap(Entities.VOID_CIRCLE, endRadius, - rand.nextFloat()*Polyjet.GAME_AREA_WIDTH, - rand.nextFloat()*Polyjet.GAME_AREA_HEIGHT, + rand.nextFloat()*Main.GAME_AREA_WIDTH, + rand.nextFloat()*Main.GAME_AREA_HEIGHT, endRadius/(avgSPB*0.7f), warningTime ); map.resetIndex(); } if (UMPeaks.get(index) >= avgUM) { - int spawnLocations = (Polyjet.GAME_AREA_WIDTH-8)/8; + int spawnLocations = (Main.GAME_AREA_WIDTH-8)/8; map.addToMap(Entities.BAR, MathUtils.round(rand.nextFloat()*spawnLocations)*8, (8f/avgSPB)*speedMod); } else { if (UMPeaks.get(index) != 0) { - float xSpawnLocation = (rand.nextFloat()*(Polyjet.GAME_AREA_WIDTH-2))+1; + float xSpawnLocation = (rand.nextFloat()*(Main.GAME_AREA_WIDTH-2))+1; map.addToMap(Entities.PELLET, xSpawnLocation, - Polyjet.GAME_AREA_HEIGHT-0.25f, + Main.GAME_AREA_HEIGHT-0.25f, 140*rand.nextFloat()+110f, - (Polyjet.GAME_AREA_HEIGHT/4f)/avgSPB); + (Main.GAME_AREA_HEIGHT/4f)/avgSPB); } } } else { diff --git a/core/src/zero1hd/polyjet/controls/KeyMap.java b/core/src/zero1hd/polyjet/controls/KeyMap.java index 4cdfa86..9ead19b 100755 --- a/core/src/zero1hd/polyjet/controls/KeyMap.java +++ b/core/src/zero1hd/polyjet/controls/KeyMap.java @@ -6,7 +6,7 @@ import com.badlogic.gdx.Preferences; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.graphics.g2d.TextureRegion; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; public class KeyMap { TextureAtlas keyTextures; @@ -61,7 +61,7 @@ public class KeyMap { public static int accelerate; - public KeyMap(Polyjet core) { + public KeyMap(Main core) { keyTextures = core.getAssetManager().get("keyboard.atlas", TextureAtlas.class); setKeys(Gdx.app.getPreferences("PolyJet_Controls")); diff --git a/core/src/zero1hd/polyjet/entity/CollisionDetector.java b/core/src/zero1hd/polyjet/entity/CollisionDetector.java index aa1696f..9a66a0a 100755 --- a/core/src/zero1hd/polyjet/entity/CollisionDetector.java +++ b/core/src/zero1hd/polyjet/entity/CollisionDetector.java @@ -10,7 +10,7 @@ import com.badlogic.gdx.graphics.g2d.ParticleEffectPool; import com.badlogic.gdx.graphics.g2d.ParticleEffectPool.PooledEffect; import com.badlogic.gdx.utils.Array; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; public class CollisionDetector { Array firstGroup; @@ -45,7 +45,7 @@ public class CollisionDetector { //Play FX; if (se.playCollideSFX() && fe.playCollideSFX()) { - explosionSFX.play(prefs.getFloat("fx vol"), 1f, (fe.getX()/Polyjet.GAME_AREA_WIDTH)-0.55f); + explosionSFX.play(prefs.getFloat("fx vol"), 1f, (fe.getX()/Main.GAME_AREA_WIDTH)-0.55f); } if (se.playCollidePFX() && fe.playCollidePFX()) { PooledEffect currentPFX; diff --git a/core/src/zero1hd/polyjet/entity/ally/Laser.java b/core/src/zero1hd/polyjet/entity/ally/Laser.java index 581689c..32b75b6 100755 --- a/core/src/zero1hd/polyjet/entity/ally/Laser.java +++ b/core/src/zero1hd/polyjet/entity/ally/Laser.java @@ -8,7 +8,7 @@ import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.utils.Pool.Poolable; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; import zero1hd.polyjet.entity.Entities; import zero1hd.polyjet.entity.Entity; @@ -45,7 +45,7 @@ public class Laser extends Entity implements Poolable { hitBox.setY(getY()); super.act(delta); - if (getY() > Polyjet.GAME_AREA_HEIGHT) { + if (getY() > Main.GAME_AREA_HEIGHT) { dead = true; } } diff --git a/core/src/zero1hd/polyjet/entity/ally/PolyJetEntity.java b/core/src/zero1hd/polyjet/entity/ally/PolyJetEntity.java index 91324f1..ac102a2 100755 --- a/core/src/zero1hd/polyjet/entity/ally/PolyJetEntity.java +++ b/core/src/zero1hd/polyjet/entity/ally/PolyJetEntity.java @@ -7,7 +7,7 @@ import com.badlogic.gdx.graphics.g2d.ParticleEffect; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.scenes.scene2d.actions.Actions; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; import zero1hd.polyjet.entity.Entities; import zero1hd.polyjet.entity.Entity; @@ -26,7 +26,7 @@ public class PolyJetEntity extends Entity { this.speed = speed; this.accel = accel; setSize(1.5f, 1.5f); - setPosition(Polyjet.GAME_AREA_WIDTH/2 - getWidth()/2, -4f); + setPosition(Main.GAME_AREA_WIDTH/2 - getWidth()/2, -4f); hitbox = new Rectangle(getX(), getY(), getWidth(), getHeight()); polyjet = assets.get("polyjet-" + jet + ".png", Texture.class); diff --git a/core/src/zero1hd/polyjet/entity/enemies/Bar.java b/core/src/zero1hd/polyjet/entity/enemies/Bar.java index ef7a637..30462f5 100755 --- a/core/src/zero1hd/polyjet/entity/enemies/Bar.java +++ b/core/src/zero1hd/polyjet/entity/enemies/Bar.java @@ -5,7 +5,7 @@ import com.badlogic.gdx.graphics.g2d.Batch; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.utils.Pool.Poolable; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; import zero1hd.polyjet.entity.Entities; import zero1hd.polyjet.entity.Entity; @@ -22,7 +22,7 @@ public class Bar extends Entity implements Poolable { public void init(float x, float rate) { setSize(8f, 0.5f); - setPosition(x, Polyjet.GAME_AREA_HEIGHT); + setPosition(x, Main.GAME_AREA_HEIGHT); this.rate = rate; hitbox.set(getX(), getY(), getWidth(), getHeight()); } diff --git a/core/src/zero1hd/polyjet/entity/enemies/Flake.java b/core/src/zero1hd/polyjet/entity/enemies/Flake.java index 959be7e..84f888a 100755 --- a/core/src/zero1hd/polyjet/entity/enemies/Flake.java +++ b/core/src/zero1hd/polyjet/entity/enemies/Flake.java @@ -8,7 +8,7 @@ import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Pool.Poolable; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; import zero1hd.polyjet.entity.Entities; import zero1hd.polyjet.entity.Entity; @@ -53,7 +53,7 @@ public class Flake extends Entity implements Poolable { hitbox.setPosition(getX(), getY()); - if (getX() > Polyjet.GAME_AREA_WIDTH || getY() > Polyjet.GAME_AREA_HEIGHT || getX() < 0-getWidth() || getY() < 0-getHeight()) { + if (getX() > Main.GAME_AREA_WIDTH || getY() > Main.GAME_AREA_HEIGHT || getX() < 0-getWidth() || getY() < 0-getHeight()) { timer = 0; } super.act(delta); diff --git a/core/src/zero1hd/polyjet/entity/enemies/Pellet.java b/core/src/zero1hd/polyjet/entity/enemies/Pellet.java index 0d88fcf..abf5a53 100755 --- a/core/src/zero1hd/polyjet/entity/enemies/Pellet.java +++ b/core/src/zero1hd/polyjet/entity/enemies/Pellet.java @@ -9,7 +9,7 @@ import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.utils.Pool.Poolable; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; import zero1hd.polyjet.entity.Entities; import zero1hd.polyjet.entity.Entity; @@ -40,7 +40,7 @@ public class Pellet extends Entity implements Poolable { hitBox.setPosition(getX(), getY()); super.act(delta); - if (getX() > Polyjet.GAME_AREA_WIDTH || getY() > Polyjet.GAME_AREA_HEIGHT || getX() < 0-getWidth() || getY() < 0-getHeight()) { + if (getX() > Main.GAME_AREA_WIDTH || getY() > Main.GAME_AREA_HEIGHT || getX() < 0-getWidth() || getY() < 0-getHeight()) { dead = true; } } diff --git a/core/src/zero1hd/polyjet/entity/enemies/Shard.java b/core/src/zero1hd/polyjet/entity/enemies/Shard.java index 694a4f2..bd92fd6 100755 --- a/core/src/zero1hd/polyjet/entity/enemies/Shard.java +++ b/core/src/zero1hd/polyjet/entity/enemies/Shard.java @@ -9,7 +9,7 @@ import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Pool.Poolable; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; import zero1hd.polyjet.entity.Entities; import zero1hd.polyjet.entity.Entity; @@ -61,7 +61,7 @@ public class Shard extends Entity implements Poolable { moveBy(angle.x*delta*rate, angle.y*rate*delta); hitbox.setPosition(getX(), getY()); - if (getX() > Polyjet.GAME_AREA_WIDTH || getY() > Polyjet.GAME_AREA_HEIGHT || getX() < 0-getWidth() || getY() < 0-getHeight()) { + if (getX() > Main.GAME_AREA_WIDTH || getY() > Main.GAME_AREA_HEIGHT || getX() < 0-getWidth() || getY() < 0-getHeight()) { hp = 0; } super.act(delta); diff --git a/core/src/zero1hd/polyjet/screens/CreativeDebugScreen.java b/core/src/zero1hd/polyjet/screens/CreativeDebugScreen.java index c6ae316..ded7ee7 100755 --- a/core/src/zero1hd/polyjet/screens/CreativeDebugScreen.java +++ b/core/src/zero1hd/polyjet/screens/CreativeDebugScreen.java @@ -6,20 +6,20 @@ import com.badlogic.gdx.Preferences; import com.badlogic.gdx.ScreenAdapter; import com.badlogic.gdx.graphics.GL20; -import zero1hd.polyjet.Polyjet; -import zero1hd.polyjet.ui.stages.CreativeStage; +import zero1hd.polyjet.Main; +import zero1hd.polyjet.ui.stages.CreativeHUD; import zero1hd.polyjet.ui.stages.GamePlayArea; public class CreativeDebugScreen extends ScreenAdapter { - CreativeStage creative; + CreativeHUD creative; GamePlayArea gamePlayArea; InputMultiplexer inputs; Preferences prefs; - public CreativeDebugScreen(Polyjet core, MainMenu mainMenu) { + public CreativeDebugScreen(Main core, MainMenu mainMenu) { gamePlayArea = new GamePlayArea(core.getAssetManager(), core.getPrefs()); - creative = new CreativeStage(core, mainMenu, gamePlayArea); + creative = new CreativeHUD(core, mainMenu, gamePlayArea); inputs = new InputMultiplexer(creative, gamePlayArea); diff --git a/core/src/zero1hd/polyjet/screens/GameScreen.java b/core/src/zero1hd/polyjet/screens/GameScreen.java index d70ff74..3bea307 100755 --- a/core/src/zero1hd/polyjet/screens/GameScreen.java +++ b/core/src/zero1hd/polyjet/screens/GameScreen.java @@ -1,51 +1,33 @@ package zero1hd.polyjet.screens; import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.InputMultiplexer; -import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.ScreenAdapter; -import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.scenes.scene2d.Actor; -import com.badlogic.gdx.scenes.scene2d.Stage; -import com.badlogic.gdx.scenes.scene2d.ui.Image; import com.badlogic.gdx.scenes.scene2d.ui.ImageButton; -import com.badlogic.gdx.scenes.scene2d.ui.Label; -import com.badlogic.gdx.scenes.scene2d.ui.TextButton; -import com.badlogic.gdx.scenes.scene2d.ui.WidgetGroup; -import com.badlogic.gdx.scenes.scene2d.ui.Window; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; import zero1hd.polyjet.audio.AudioData; import zero1hd.polyjet.audio.map.GamePlayMap; +import zero1hd.polyjet.ui.stages.GameHUD; import zero1hd.polyjet.ui.stages.GamePlayArea; -import zero1hd.polyjet.ui.windows.FPSWindow; -public class GameScreen extends ScreenAdapter implements InputProcessor { +public class GameScreen extends ScreenAdapter { private GamePlayArea gameArea; + private GameHUD gameHUD; + public InputMultiplexer inputs; - public boolean paused = false; - private boolean debug = false; - - public Polyjet core; - public Stage overlay; - private Label scoreLabel; - Window pauseMenu; - FPSWindow FPSDisplay; - + public Main core; + private AudioData music; - public GameScreen(Polyjet polyJet, GamePlayMap gpm) { + public GameScreen(Main polyJet, GamePlayMap gpm) { core = polyJet; // Overlay stuff - overlay = new Stage(); - scoreLabel = new Label("Score: 0", core.getDefaultSkin(), "default-font", Color.WHITE); - scoreLabel.setPosition(25, Gdx.graphics.getHeight() - scoreLabel.getHeight() - 25); - ImageButton pause = new ImageButton(core.getDefaultSkin().getDrawable("pause"), core.getDefaultSkin().getDrawable("pause-down")); pause.setPosition(Gdx.graphics.getWidth() - pause.getWidth() - 25, @@ -56,65 +38,27 @@ public class GameScreen extends ScreenAdapter implements InputProcessor { pause(); } }); - - WidgetGroup healthBar = new WidgetGroup(); - final Image healthBarTank = new Image(core.getDefaultSkin().getPatch("bar-empty")); - healthBarTank.setHeight(100); - healthBar.setSize(healthBarTank.getWidth(), healthBarTank.getHeight()); - healthBar.setPosition(Gdx.graphics.getWidth() - healthBar.getWidth() - 16, - pause.getY() - healthBar.getHeight() - 32); - - Image healthBarFiller = new Image(core.getDefaultSkin().getPatch("bar-fill")) { - @Override - public void act(float delta) { - setHeight( - ((float) gameArea.getPolyjet().health / (float) gameArea.getMaxHealth()) * (healthBarTank.getHeight())); - super.act(delta); - } - }; - healthBar.addActor(healthBarFiller); - healthBar.addActor(healthBarTank); - overlay.addActor(healthBar); - - FPSDisplay = new FPSWindow("FPS", core.getDefaultSkin()); - overlay.addActor(pause); - overlay.addActor(scoreLabel); - - // Pause menu - pauseMenu = new Window("Paused", core.getDefaultSkin()); - pauseMenu.add(new TextButton("resume", core.getDefaultSkin()) { - { - addListener(new ChangeListener() { - - @Override - public void changed(ChangeEvent event, Actor actor) { - reBegin(); - } - }); - } - }).space(20f); - pauseMenu.setModal(true); - pauseMenu.setPosition((Gdx.graphics.getWidth() - pauseMenu.getWidth()) / 2, - (Gdx.graphics.getHeight() - pauseMenu.getHeight()) / 2); - - // Continue to add things to input multiplexer + + music = gpm.getMusicData(); + gameArea = new GamePlayArea(polyJet.getAssetManager(), core.getPrefs()); gameArea.setAudioMap(gpm); + gameHUD = new GameHUD(polyJet.getDefaultSkin(), gpm.getPlayableClip(), gameArea.getMaxHealth()); inputs = new InputMultiplexer(); - inputs.addProcessor(this); - inputs.addProcessor(overlay); + inputs.addProcessor(gameHUD); inputs.addProcessor(gameArea); - - if (!paused) { - music.getPlaybackMusic().play(); - } + } @Override public void show() { Gdx.input.setInputProcessor(inputs); gameArea.loadShaders(core.getPrefs()); + + if (!gameHUD.isPaused()) { + music.getPlaybackMusic().play(); + } super.show(); } @@ -122,22 +66,23 @@ public class GameScreen extends ScreenAdapter implements InputProcessor { public void render(float delta) { Gdx.gl.glClearColor(1f, 1f, 1f, 1f); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT); - Gdx.gl.glLineWidth(1f); - gameArea.getViewport().apply(); +// Gdx.gl.glLineWidth(1f); + + gameArea.getViewport().apply(); gameArea.draw(); - overlay.getViewport().apply(); - overlay.draw(); - if (!paused) { - scoreLabel.setText("Score: " + gameArea.getScore()); + gameHUD.getViewport().apply(); + gameHUD.draw(); + if (!gameHUD.isPaused()) { + gameHUD.setScore(gameArea.getScore()); gameArea.act(delta); if (gameArea.getPolyjet().isDead()) { end(false); } - overlay.act(delta); + gameHUD.act(delta); } if (!music.getPlaybackMusic().isPlaying()) { @@ -157,102 +102,23 @@ public class GameScreen extends ScreenAdapter implements InputProcessor { @Override public void dispose() { - overlay.dispose(); + gameHUD.dispose(); gameArea.dispose(); super.dispose(); } - + + @Override + public void pause() { + gameHUD.setPaused(true); + super.pause(); + } + @Override public void resize(int width, int height) { gameArea.getViewport().update(width, height, true); - overlay.getViewport().update(width, height, true); + gameHUD.getViewport().update(width, height, true); super.resize(width, height); } - @Override - public void pause() { - paused = true; - overlay.addActor(pauseMenu); - music.getPlaybackMusic().pause(); - super.pause(); - } - - @Override - public void resume() { - super.resume(); - } - - public void reBegin() { - paused = false; - pauseMenu.remove(); - music.getPlaybackMusic().play(); - } - - @Override - public boolean keyUp(int keycode) { - switch (keycode) { - case Keys.F3: - if (debug) { - debug = false; - for (int i = 0; i < gameArea.getActors().size; i++) { - gameArea.setDebugAll(debug); - } - FPSDisplay.remove(); - } else { - debug = true; - for (int i = 0; i < gameArea.getActors().size; i++) { - gameArea.setDebugAll(debug); - } - overlay.addActor(FPSDisplay); - } - - break; - - case Keys.ESCAPE: - if (paused) { - reBegin(); - } else { - pause(); - } - break; - } - return false; - } - - @Override - public boolean keyTyped(char character) { - return false; - } - - @Override - public boolean mouseMoved(int screenX, int screenY) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean scrolled(int amount) { - return false; - } - - @Override - public boolean keyDown(int keycode) { - return false; - } - - @Override - public boolean touchDown(int screenX, int screenY, int pointer, int button) { - return false; - } - - @Override - public boolean touchUp(int screenX, int screenY, int pointer, int button) { - return false; - } - - @Override - public boolean touchDragged(int screenX, int screenY, int pointer) { - return false; - } } \ No newline at end of file diff --git a/core/src/zero1hd/polyjet/screens/LoadingScreen.java b/core/src/zero1hd/polyjet/screens/LoadingScreen.java index 7dd1b22..3bbe3e6 100755 --- a/core/src/zero1hd/polyjet/screens/LoadingScreen.java +++ b/core/src/zero1hd/polyjet/screens/LoadingScreen.java @@ -12,17 +12,17 @@ import com.badlogic.gdx.scenes.scene2d.actions.Actions; import com.badlogic.gdx.scenes.scene2d.ui.Image; import com.badlogic.gdx.utils.viewport.ScreenViewport; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; import zero1hd.polyjet.util.TransitionAdapter; public class LoadingScreen extends ScreenAdapter { private Stage stage; - Polyjet core; + Main core; Image zero1HD; Screen gotoScreen; boolean reInit; - public LoadingScreen(Polyjet core, Screen gotoScreen, boolean reInit, boolean timer) { + public LoadingScreen(Main core, Screen gotoScreen, boolean reInit, boolean timer) { this.core = core; this.gotoScreen = gotoScreen; this.reInit = reInit; diff --git a/core/src/zero1hd/polyjet/screens/MainMenu.java b/core/src/zero1hd/polyjet/screens/MainMenu.java index 1ef1813..59b9e92 100755 --- a/core/src/zero1hd/polyjet/screens/MainMenu.java +++ b/core/src/zero1hd/polyjet/screens/MainMenu.java @@ -12,7 +12,7 @@ import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.utils.viewport.ScreenViewport; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; import zero1hd.polyjet.ui.pages.CreditsPage; import zero1hd.polyjet.ui.pages.MainPage; import zero1hd.polyjet.ui.pages.MoreOptionsPage; @@ -30,9 +30,9 @@ public class MainMenu extends ScreenAdapter implements TransitionAdapter { private CreditsPage creditsPage; private MoreOptionsPage moreOptionsPage; - private Polyjet core; + private Main core; - public MainMenu(final Polyjet core) { + public MainMenu(final Main core) { this.core = core; stage = new Stage(new ScreenViewport()); targetPosition = new Vector3(stage.getCamera().position); diff --git a/core/src/zero1hd/polyjet/screens/PreGameScreen.java b/core/src/zero1hd/polyjet/screens/PreGameScreen.java index b74fddc..5f6f8c2 100755 --- a/core/src/zero1hd/polyjet/screens/PreGameScreen.java +++ b/core/src/zero1hd/polyjet/screens/PreGameScreen.java @@ -8,7 +8,7 @@ import com.badlogic.gdx.math.Vector3; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.utils.viewport.ScreenViewport; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; import zero1hd.polyjet.audio.Audio; import zero1hd.polyjet.ui.pages.AnalyzePage; import zero1hd.polyjet.ui.pages.MusicSelectionPage; @@ -23,9 +23,9 @@ public class PreGameScreen extends ScreenAdapter implements TransitionAdapter, M MusicSelectionPage ms; AnalyzePage ap; private Vector3 cameraPos; - private Polyjet core; + private Main core; - public PreGameScreen(Polyjet core) { + public PreGameScreen(Main core) { stage = new Stage(new ScreenViewport()); cameraPos = new Vector3(stage.getCamera().position); this.core = core; @@ -60,10 +60,6 @@ public class PreGameScreen extends ScreenAdapter implements TransitionAdapter, M cameraPos.x = 1.5f*Gdx.graphics.getWidth(); ap.setSong(Audio.getAudioData(ms.getSelectedMusic()), ms.getSelectedMusicInfo(), this); break; - case SPECTRAL_FLUX_DONE: - break; - case MUSIC_DATA_CLEANED: - break; case BACK: if (cameraPos.x == 1.5f*Gdx.graphics.getWidth()) { cameraPos.x = 0.5f*Gdx.graphics.getWidth(); @@ -85,7 +81,7 @@ public class PreGameScreen extends ScreenAdapter implements TransitionAdapter, M ms.beginMusicSearch(); stage.addActor(ms); - ap = new AnalyzePage(core.getDefaultSkin(), core.getAssetManager()); + ap = new AnalyzePage(core); ap.miniSender.addListener(this); ap.setPosition(Gdx.graphics.getWidth(), ap.getY()); stage.addActor(ap); diff --git a/core/src/zero1hd/polyjet/ui/builders/HealthBar.java b/core/src/zero1hd/polyjet/ui/builders/HealthBar.java new file mode 100755 index 0000000..5a7a59a --- /dev/null +++ b/core/src/zero1hd/polyjet/ui/builders/HealthBar.java @@ -0,0 +1,52 @@ +package zero1hd.polyjet.ui.builders; + +import com.badlogic.gdx.math.MathUtils; +import com.badlogic.gdx.scenes.scene2d.actions.Actions; +import com.badlogic.gdx.scenes.scene2d.ui.Image; +import com.badlogic.gdx.scenes.scene2d.ui.Skin; +import com.badlogic.gdx.scenes.scene2d.ui.WidgetGroup; + +public class HealthBar extends WidgetGroup { + Image empty; + Image filled; + int health; + int maxHealth; + public HealthBar(Skin skin, int maxHealth) { + super(); + + empty = new Image(skin.getPatch("bar-empty")); + filled = new Image(skin.getPatch("bar-fill")); + + addActor(empty); + addActor(filled); + + this.maxHealth = maxHealth; + + } + + public void setHealth(int health) { + this.health = health; + + filled.addAction(Actions.sizeTo(getWidth(), MathUtils.round((health/maxHealth)*getHeight()), 0.1f));; + } + + @Override + public void setSize(float width, float height) { + empty.setSize(width, height); + filled.setSize(width, height); + super.setSize(width, height); + } + + @Override + public void setWidth(float width) { + empty.setWidth(width); + filled.setWidth(width); + super.setWidth(width); + } + + @Override + public void setHeight(float height) { + empty.setHeight(height); + super.setHeight(height); + } +} diff --git a/core/src/zero1hd/polyjet/ui/pages/AnalyzePage.java b/core/src/zero1hd/polyjet/ui/pages/AnalyzePage.java index edbc1b1..00a6b63 100755 --- a/core/src/zero1hd/polyjet/ui/pages/AnalyzePage.java +++ b/core/src/zero1hd/polyjet/ui/pages/AnalyzePage.java @@ -1,7 +1,6 @@ package zero1hd.polyjet.ui.pages; import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.assets.AssetManager; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.math.Interpolation; @@ -16,10 +15,13 @@ import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; import com.badlogic.gdx.utils.Align; +import zero1hd.polyjet.Main; import zero1hd.polyjet.audio.AudioAnalyzer; import zero1hd.polyjet.audio.AudioData; import zero1hd.polyjet.audio.AudioInfo; +import zero1hd.polyjet.audio.map.GamePlayMap; import zero1hd.polyjet.audio.map.RhythmMapAlgorithm; +import zero1hd.polyjet.screens.GameScreen; import zero1hd.polyjet.ui.builders.ScrollText; import zero1hd.polyjet.util.MiniEvents; import zero1hd.polyjet.util.MiniListener; @@ -53,9 +55,12 @@ public class AnalyzePage extends Page implements MiniListener { private Thread mapGenThread; - public AnalyzePage(Skin skin, AssetManager assets) { - super("Results", skin); - this.skin = skin; + + private Main core; + public AnalyzePage(Main core) { + super("Results", core.getDefaultSkin()); + this.skin = core.getDefaultSkin(); + this.core = core; songInfo = new Table(skin); songInfo.align(Align.top); @@ -149,7 +154,7 @@ public class AnalyzePage extends Page implements MiniListener { beginTable.pack(); addActor(beginTable); - loadingCircle = new Image(assets.get("cybercircle1.png", Texture.class)); + loadingCircle = new Image(core.getAssetManager().get("cybercircle1.png", Texture.class)); loadingCircle.setPosition((getWidth()-loadingCircle.getWidth())/2, (getHeightBelowTitle()-loadingCircle.getHeight())/2); loadingCircle.setColor(0.8f,0.8f,0.8f,0.7f); loadingCircle.setOrigin(loadingCircle.getWidth()/2, loadingCircle.getHeight()/2); @@ -267,6 +272,21 @@ public class AnalyzePage extends Page implements MiniListener { case MAP_GENERATED: endTime = System.currentTimeMillis(); info[5].setText("Done. Generation time: " + ((endTime - startTime)/1000f) + "s"); + + Gdx.app.postRunnable(new Runnable() { + @Override + public void run() { + final GameScreen gameScreen = new GameScreen(core, mapGenAlgorithm.getMap()); + beginButton.addListener(new ChangeListener() { + + @Override + public void changed(ChangeEvent event, Actor actor) { + core.setScreen(gameScreen); + } + }); + } + }); + info[5].addAction(Actions.color(Color.BLACK, 0.75f)); songInfo.addAction(Actions.moveTo(songInfo.getX(), getHeightBelowTitle()-songInfo.getHeight(), 0.75f, Interpolation.linear)); difficultyTable.addAction(Actions.sequence(Actions.delay(0.4f), Actions.moveTo(songInfo.getX(), getHeightBelowTitle()-songInfo.getHeight()-difficultyTable.getHeight()-10f,0.8f, Interpolation.linear))); @@ -282,4 +302,8 @@ public class AnalyzePage extends Page implements MiniListener { info[3].setText("finalizing data..."); info[3].addAction(Actions.color(Color.BLACK, 0.75f)); } + + public GamePlayMap getMap() { + return mapGenAlgorithm.getMap(); + } } diff --git a/core/src/zero1hd/polyjet/ui/pages/MainPage.java b/core/src/zero1hd/polyjet/ui/pages/MainPage.java index e01b91e..02e803a 100755 --- a/core/src/zero1hd/polyjet/ui/pages/MainPage.java +++ b/core/src/zero1hd/polyjet/ui/pages/MainPage.java @@ -13,7 +13,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.WidgetGroup; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; import zero1hd.polyjet.screens.PreGameScreen; public class MainPage extends Page { @@ -26,11 +26,11 @@ public class MainPage extends Page { private TextButton credits; private WidgetGroup playButton; - public MainPage(final Polyjet core, final Vector3 targetPosition) { + public MainPage(final Main core, final Vector3 targetPosition) { polyjetTitle = new Image(core.getAssetManager().get("PolyjetTitle.png", Texture.class)); polyjetTitle.setPosition(15, getHeight() - polyjetTitle.getHeight()-15); addActor(polyjetTitle); - polyJetVersion = new Label("Version: " + Polyjet.VERSION, core.getDefaultSkin(), "sub-font", + polyJetVersion = new Label("Version: " + Main.VERSION, core.getDefaultSkin(), "sub-font", core.getDefaultSkin().getColor("default")); polyJetVersion.setPosition(3, 3); addActor(polyJetVersion); diff --git a/core/src/zero1hd/polyjet/ui/pages/MoreOptionsPage.java b/core/src/zero1hd/polyjet/ui/pages/MoreOptionsPage.java index c6105f6..4cb201e 100755 --- a/core/src/zero1hd/polyjet/ui/pages/MoreOptionsPage.java +++ b/core/src/zero1hd/polyjet/ui/pages/MoreOptionsPage.java @@ -7,7 +7,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; import zero1hd.polyjet.controls.KeyMap; import zero1hd.polyjet.ui.builders.GraphicsTable; import zero1hd.polyjet.ui.builders.SetControls; @@ -21,7 +21,7 @@ public class MoreOptionsPage extends Page { private GraphicsTable graphicsSettings; - public MoreOptionsPage(Polyjet core, final Vector3 targetLocation) { + public MoreOptionsPage(Main core, final Vector3 targetLocation) { keymap = new KeyMap(core); TextButton backArrow = new TextButton("Back", core.getDefaultSkin()); diff --git a/core/src/zero1hd/polyjet/ui/pages/MusicSelectionPage.java b/core/src/zero1hd/polyjet/ui/pages/MusicSelectionPage.java index 4afc6ad..a5946ed 100755 --- a/core/src/zero1hd/polyjet/ui/pages/MusicSelectionPage.java +++ b/core/src/zero1hd/polyjet/ui/pages/MusicSelectionPage.java @@ -15,7 +15,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; import zero1hd.polyjet.audio.AudioInfo; import zero1hd.polyjet.ui.builders.MusicSelectable; import zero1hd.polyjet.ui.windows.LoadingWindow; @@ -25,7 +25,7 @@ import zero1hd.polyjet.util.MiniEvents; public class MusicSelectionPage extends Page { private volatile Table musicChoices; Preferences musicFileAnnotation; - private Polyjet core; + private Main core; private volatile ScrollPane musicChoiceScroller; private volatile LoadingWindow loadingWindow; @@ -35,7 +35,7 @@ public class MusicSelectionPage extends Page { private FileHandle selectedMusic; private AudioInfo selectedMusicInfo; - public MusicSelectionPage(final Polyjet core) { + public MusicSelectionPage(final Main core) { super("Select music", core.getDefaultSkin()); this.core = core; diff --git a/core/src/zero1hd/polyjet/ui/pages/OptionsPage.java b/core/src/zero1hd/polyjet/ui/pages/OptionsPage.java index 33fec6a..9489090 100755 --- a/core/src/zero1hd/polyjet/ui/pages/OptionsPage.java +++ b/core/src/zero1hd/polyjet/ui/pages/OptionsPage.java @@ -16,7 +16,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.ui.TextField; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; import zero1hd.polyjet.screens.CreativeDebugScreen; import zero1hd.polyjet.screens.MainMenu; @@ -25,10 +25,10 @@ public class OptionsPage extends Page { private ProgressBar musicVolSlider; private ProgressBar fxVolSlider; private TextField directoryField; - private Polyjet core; + private Main core; private byte goToScreen; - public OptionsPage(final Polyjet core, final Vector3 targetPosition, final MoreOptionsPage moreOptionsPage) { + public OptionsPage(final Main core, final Vector3 targetPosition, final MoreOptionsPage moreOptionsPage) { this.core = core; optionsTable.defaults().spaceLeft(40f).padTop(5f).padBottom(5f).left(); diff --git a/core/src/zero1hd/polyjet/ui/stages/CreativeStage.java b/core/src/zero1hd/polyjet/ui/stages/CreativeHUD.java similarity index 94% rename from core/src/zero1hd/polyjet/ui/stages/CreativeStage.java rename to core/src/zero1hd/polyjet/ui/stages/CreativeHUD.java index 851784b..edb93ce 100755 --- a/core/src/zero1hd/polyjet/ui/stages/CreativeStage.java +++ b/core/src/zero1hd/polyjet/ui/stages/CreativeHUD.java @@ -13,7 +13,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.ui.Window; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; import zero1hd.polyjet.audio.AudioAnalyzer; import zero1hd.polyjet.audio.map.RhythmMapAlgorithm; import zero1hd.polyjet.screens.MainMenu; @@ -28,7 +28,7 @@ import zero1hd.polyjet.ui.windows.VolumeWindow; import zero1hd.polyjet.util.MiniEvents; import zero1hd.polyjet.util.MiniListener; -public class CreativeStage extends Stage implements MiniListener { +public class CreativeHUD extends Stage implements MiniListener { MusicController musicPlayBackControls; MusicSelector musicSelector; FPSWindow fpsViewer; @@ -43,7 +43,7 @@ public class CreativeStage extends Stage implements MiniListener { Window toolbox; GamePlayArea gpa; - public CreativeStage(final Polyjet core, final MainMenu mainMenu, final GamePlayArea gpa) { + public CreativeHUD(final Main core, final MainMenu mainMenu, final GamePlayArea gpa) { this.gpa = gpa; musicSelector = new MusicSelector("Select Audio File", core.getDefaultSkin(), core.getPrefs().getString("music dir"), "default"); musicSelector.miniSender.addListener(this); diff --git a/core/src/zero1hd/polyjet/ui/stages/GameHUD.java b/core/src/zero1hd/polyjet/ui/stages/GameHUD.java new file mode 100755 index 0000000..5c4cb85 --- /dev/null +++ b/core/src/zero1hd/polyjet/ui/stages/GameHUD.java @@ -0,0 +1,126 @@ +package zero1hd.polyjet.ui.stages; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input.Keys; +import com.badlogic.gdx.audio.Music; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.scenes.scene2d.Actor; +import com.badlogic.gdx.scenes.scene2d.Stage; +import com.badlogic.gdx.scenes.scene2d.ui.ImageButton; +import com.badlogic.gdx.scenes.scene2d.ui.Label; +import com.badlogic.gdx.scenes.scene2d.ui.Skin; +import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; + +import zero1hd.polyjet.ui.builders.HealthBar; +import zero1hd.polyjet.ui.windows.FPSWindow; +import zero1hd.polyjet.ui.windows.PauseMenu; + +public class GameHUD extends Stage { + private Label score; + private ImageButton pause; + private boolean paused; + private FPSWindow fpsWindow; + private PauseMenu pauseMenu; + private HealthBar healthBar; + + private Music music; + + public GameHUD(Skin skin, Music music, int maxHealth) { + super(); + this.music = music; + + score = new Label("Score: 0", skin, "default-font", Color.WHITE); + score.setPosition(10f, Gdx.graphics.getHeight()-score.getHeight() - 10f); + addActor(score); + + pause = new ImageButton(skin.getDrawable("pause"), + skin.getDrawable("pause-down")); + pause.setPosition(Gdx.graphics.getWidth() - pause.getWidth() - 15f, + Gdx.graphics.getHeight() - pause.getHeight() - 15f); + pause.addListener(new ChangeListener() { + @Override + public void changed(ChangeEvent event, Actor actor) { + setPaused(true); + } + }); + addActor(pause); + + fpsWindow = new FPSWindow("FPS", skin); + fpsWindow.setPosition(15f, 15f); + addActor(fpsWindow); + + pauseMenu = new PauseMenu(skin); + pauseMenu.getResumeButton().addListener(new ChangeListener() { + @Override + public void changed(ChangeEvent event, Actor actor) { + setPaused(false); + } + }); + pauseMenu.setPosition((Gdx.graphics.getWidth()-pauseMenu.getWidth())/2f, (Gdx.graphics.getHeight()-pauseMenu.getHeight())/2f); + + healthBar = new HealthBar(skin, maxHealth); + healthBar.setSize(20f, Gdx.graphics.getHeight()/3); + healthBar.setHealth(maxHealth); + healthBar.setPosition(Gdx.graphics.getWidth()-healthBar.getWidth() -10f, (Gdx.graphics.getHeight()-healthBar.getHeight())/2f); + addActor(healthBar); + } + + /** + * sets the label for scoring to the designated score + * @param score designated score + */ + public void setScore(int score) { + this.score.setText("Score: " + score); + } + + /** + * returns current score by use of substring + * @return the current score value + */ + public int getScore() { + return Integer.valueOf(score.getText().substring(7)); + } + + public void setPaused(boolean paused) { + if (paused) { + addActor(pauseMenu); + music.pause(); + } else { + pauseMenu.remove(); + music.play(); + } + this.paused = paused; + } + + /** + * toggle's between the two states of paused and unpaused + * @return whatever the new game state is (true for paused) + */ + public boolean togglePause() { + if (isPaused()) { + setPaused(false); + } else { + setPaused(true); + } + return isPaused(); + } + + public boolean isPaused() { + return paused; + } + + @Override + public boolean keyUp(int keycode) { + switch (keycode) { + case Keys.F3: + addActor(fpsWindow); + break; + case Keys.ESCAPE: + togglePause(); + break; + default: + break; + } + return false; + } +} diff --git a/core/src/zero1hd/polyjet/ui/stages/GamePlayArea.java b/core/src/zero1hd/polyjet/ui/stages/GamePlayArea.java index 1689ad9..28bbd7a 100755 --- a/core/src/zero1hd/polyjet/ui/stages/GamePlayArea.java +++ b/core/src/zero1hd/polyjet/ui/stages/GamePlayArea.java @@ -12,7 +12,7 @@ import com.badlogic.gdx.graphics.glutils.ShaderProgram; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.utils.viewport.FitViewport; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; import zero1hd.polyjet.audio.map.EntitySpawnInfo; import zero1hd.polyjet.audio.map.GamePlayMap; import zero1hd.polyjet.audio.map.MapWindowData; @@ -31,8 +31,10 @@ public class GamePlayArea extends Stage { public EntityController ec; private CollisionDetector collisionDetector; - private float maxHealth = 100; - private float yTeleport = Polyjet.GAME_AREA_HEIGHT/2; + private int maxHealth = 100; + + private float yTeleport = Main.GAME_AREA_HEIGHT/2; + private int score; private ShaderProgram glowShader; @@ -42,11 +44,8 @@ public class GamePlayArea extends Stage { private ShaderProgram bgShader; private Texture background; - - private float time; - public GamePlayArea(AssetManager assetManager, Preferences prefs) { - super(new FitViewport(Polyjet.GAME_AREA_WIDTH, Polyjet.GAME_AREA_HEIGHT)); + super(new FitViewport(Main.GAME_AREA_WIDTH, Main.GAME_AREA_HEIGHT)); Gdx.app.debug("Game Area", "new area created"); background = assetManager.get("star_bg.png"); @@ -58,10 +57,8 @@ public class GamePlayArea extends Stage { } public void setAudioMap(GamePlayMap audioMap) { - time = 0; this.audioMap = audioMap; } - /** * needs to be called right after set as screen (should be called in show method). * @param prefs @@ -74,7 +71,7 @@ public class GamePlayArea extends Stage { System.err.println(glowShader.getLog()); System.exit(0); } - if (glowShader.getLog().length()!=0) { + if (glowShader.getLog().length() != 0) { System.out.println(glowShader.getLog()); } @@ -120,10 +117,13 @@ public class GamePlayArea extends Stage { if (bgShader != null) { getBatch().setShader(bgShader); - bgShader.setUniformf("time", time); bgShader.setUniformf("resolution", background.getWidth(), background.getHeight()); + + if (audioMap != null) { + bgShader.setUniformf("time", audioMap.getPlayableClip().getPosition()); + } } - getBatch().draw(background, 0f, 0f, Polyjet.GAME_AREA_WIDTH, Polyjet.GAME_AREA_HEIGHT); + getBatch().draw(background, 0f, 0f, Main.GAME_AREA_WIDTH, Main.GAME_AREA_HEIGHT); getBatch().end(); getBatch().setShader(null); @@ -144,7 +144,7 @@ public class GamePlayArea extends Stage { getBatch().setBlendFunction(GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_ALPHA); getBatch().begin(); getBatch().setShader(glowShader); - getBatch().draw(fboRegion, 0f, 0f, Polyjet.GAME_AREA_WIDTH, Polyjet.GAME_AREA_HEIGHT); + getBatch().draw(fboRegion, 0f, 0f, Main.GAME_AREA_WIDTH, Main.GAME_AREA_HEIGHT); getBatch().setShader(null); getBatch().end(); @@ -158,7 +158,6 @@ public class GamePlayArea extends Stage { MapWindowData mwd; if (audioMap != null && audioMap.getPlayableClip().isPlaying()) { audioMap.getMusicData().readIndexUpdate(); - time = audioMap.getPlayableClip().getPosition(); if ((mwd = audioMap.nextWindowData()) != null) { EntitySpawnInfo[] currentSpawnInfo = mwd.getArray(); if (currentSpawnInfo != null) { @@ -177,14 +176,14 @@ public class GamePlayArea extends Stage { polyjet.setX(1f); } - if (polyjet.getX() >= Polyjet.GAME_AREA_WIDTH-1-polyjet.getWidth()) { + if (polyjet.getX() >= Main.GAME_AREA_WIDTH-1-polyjet.getWidth()) { polyjet.moveRight = false; - polyjet.setX(Polyjet.GAME_AREA_WIDTH-1f-polyjet.getWidth()); + polyjet.setX(Main.GAME_AREA_WIDTH-1f-polyjet.getWidth()); } - if (polyjet.getY() >= Polyjet.GAME_AREA_HEIGHT - 1 - polyjet.getHeight()) { + if (polyjet.getY() >= Main.GAME_AREA_HEIGHT - 1 - polyjet.getHeight()) { polyjet.moveUp = false; - polyjet.setY(Polyjet.GAME_AREA_HEIGHT - 1 - polyjet.getHeight()); + polyjet.setY(Main.GAME_AREA_HEIGHT - 1 - polyjet.getHeight()); } if (polyjet.getY() <= 1) { @@ -260,7 +259,7 @@ public class GamePlayArea extends Stage { return score; } - public float getMaxHealth() { + public int getMaxHealth() { return maxHealth; } public float getyTeleport() { diff --git a/core/src/zero1hd/polyjet/ui/windows/PauseMenu.java b/core/src/zero1hd/polyjet/ui/windows/PauseMenu.java new file mode 100755 index 0000000..5f56fab --- /dev/null +++ b/core/src/zero1hd/polyjet/ui/windows/PauseMenu.java @@ -0,0 +1,31 @@ +package zero1hd.polyjet.ui.windows; + +import com.badlogic.gdx.scenes.scene2d.ui.Label; +import com.badlogic.gdx.scenes.scene2d.ui.Skin; +import com.badlogic.gdx.scenes.scene2d.ui.TextButton; +import com.badlogic.gdx.scenes.scene2d.ui.Window; + +public class PauseMenu extends Window { + private Label label; + private TextButton resumeButton; + + public PauseMenu(Skin skin) { + super("Paused", skin, "tinted"); + defaults().pad(35f); + label = new Label("Game is paused.", skin); + add(label).spaceBottom(20f); + row(); + + resumeButton = new TextButton("Resume", skin); + add(resumeButton); + + pack(); + + setModal(true); + } + + + public TextButton getResumeButton() { + return resumeButton; + } +} diff --git a/desktop/src/zero1hd/polyjet/desktop/DesktopLauncher.java b/desktop/src/zero1hd/polyjet/desktop/DesktopLauncher.java index ccb41ce..9c86987 100755 --- a/desktop/src/zero1hd/polyjet/desktop/DesktopLauncher.java +++ b/desktop/src/zero1hd/polyjet/desktop/DesktopLauncher.java @@ -3,7 +3,7 @@ package zero1hd.polyjet.desktop; import com.badlogic.gdx.backends.lwjgl.LwjglApplication; import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; -import zero1hd.polyjet.Polyjet; +import zero1hd.polyjet.Main; public class DesktopLauncher { public static void main (String[] arg) { @@ -15,7 +15,7 @@ public class DesktopLauncher { // System.setProperty("org.lwjgl.opengl.Window.undecorated", "true"); - new LwjglApplication(new Polyjet(), config); + new LwjglApplication(new Main(), config); } }