This commit is contained in:
Raybz@Raybz 2013-06-21 12:50:31 +02:00
commit 0d2ec02510
28 changed files with 664 additions and 204 deletions

Binary file not shown.

View File

@ -45,6 +45,7 @@ file.reference.jogg-0.0.7.jar=lib\\jogg-0.0.7.jar
file.reference.jorbis-0.0.15.jar=lib\\jorbis-0.0.15.jar file.reference.jorbis-0.0.15.jar=lib\\jorbis-0.0.15.jar
file.reference.mp3spi1.9.5.jar=lib\\mp3spi1.9.5.jar file.reference.mp3spi1.9.5.jar=lib\\mp3spi1.9.5.jar
file.reference.platform-3.5.2.jar=lib\\platform-3.5.2.jar file.reference.platform-3.5.2.jar=lib\\platform-3.5.2.jar
file.reference.sqlite-jdbc-3.7.2.jar=lib\\sqlite-jdbc-3.7.2.jar
file.reference.tritonus_aos-0.3.6.jar=lib\\tritonus_aos-0.3.6.jar file.reference.tritonus_aos-0.3.6.jar=lib\\tritonus_aos-0.3.6.jar
file.reference.tritonus_jorbis-0.3.6.jar=lib\\tritonus_jorbis-0.3.6.jar file.reference.tritonus_jorbis-0.3.6.jar=lib\\tritonus_jorbis-0.3.6.jar
file.reference.tritonus_share-0.3.6.jar=lib\\tritonus_share-0.3.6.jar file.reference.tritonus_share-0.3.6.jar=lib\\tritonus_share-0.3.6.jar
@ -85,7 +86,8 @@ javac.classpath=\
${file.reference.wget-1.2.7.jar}:\ ${file.reference.wget-1.2.7.jar}:\
${file.reference.xmlpull-1.1.3.1.jar}:\ ${file.reference.xmlpull-1.1.3.1.jar}:\
${file.reference.xpp3_min-1.1.4c.jar}:\ ${file.reference.xpp3_min-1.1.4c.jar}:\
${file.reference.xstream-1.4.2.jar} ${file.reference.xstream-1.4.2.jar}:\
${file.reference.sqlite-jdbc-3.7.2.jar}
# Space-separated list of extra javac options # Space-separated list of extra javac options
javac.compilerargs= javac.compilerargs=
javac.deprecation=false javac.deprecation=false

View File

@ -33,6 +33,10 @@ import org.wyrez.shootingstars.data.AudioDataManager;
import org.wyrez.shootingstars.data.YTDownloader; import org.wyrez.shootingstars.data.YTDownloader;
import org.wyrez.shootingstars.factories.Materials; import org.wyrez.shootingstars.factories.Materials;
import org.wyrez.shootingstars.game.GameSettings; import org.wyrez.shootingstars.game.GameSettings;
import org.wyrez.shootingstars.gui.manager.HighscoreManager;
import org.wyrez.shootingstars.gui.manager.ScoreComparator;
import org.wyrez.shootingstars.helper.ScreenHelper;
import org.wyrez.shootingstars.io.SQLiteConnector;
import org.wyrez.shootingstars.states.State; import org.wyrez.shootingstars.states.State;
import org.wyrez.shootingstars.states.StateManager; import org.wyrez.shootingstars.states.StateManager;
import org.wyrez.shootingstars.states.util.OptionSettings; import org.wyrez.shootingstars.states.util.OptionSettings;
@ -83,7 +87,11 @@ public class ShootingStars extends SimpleApplication {
container.registerSingleton(OptionSettings.class, optionSettings); container.registerSingleton(OptionSettings.class, optionSettings);
container.registerType(GameSettings.class, true); container.registerType(GameSettings.class, true);
container.registerType(StateManager.class, true); container.registerType(StateManager.class, true);
container.registerType(SQLiteConnector.class, true);
container.registerType(ScoreComparator.class, true);
container.registerType(HighscoreManager.class, true);
container.registerType(Screen.class, true); container.registerType(Screen.class, true);
container.registerType(ScreenHelper.class, true);
container.registerType(AudioDataManager.class, true); container.registerType(AudioDataManager.class, true);
container.registerType(YTDownloader.class); container.registerType(YTDownloader.class);
} }

View File

@ -16,6 +16,7 @@
*/ */
package org.wyrez.shootingstars.controls; package org.wyrez.shootingstars.controls;
import com.jme3.math.ColorRGBA;
import com.jme3.scene.Spatial; import com.jme3.scene.Spatial;
import com.jme3.scene.control.Control; import com.jme3.scene.control.Control;
import org.wyrez.shootingstars.helper.UserDataKeys; import org.wyrez.shootingstars.helper.UserDataKeys;
@ -27,19 +28,29 @@ import org.wyrez.shootingstars.helper.UserDataKeys;
public class StarPointControl extends BaseControl { public class StarPointControl extends BaseControl {
private int points = 100; //Todo Change StartPoint at Spawn private int points = 100; //Todo Change StartPoint at Spawn
private Spatial player;
public StarPointControl() { private ColorRGBA starColor;
public StarPointControl(Spatial player) {
this.player = player;
} }
@Override @Override
protected void controlUpdate(float tpf) { protected void controlUpdate(float tpf) {
if (spatial.getUserData(UserDataKeys.HITTED)) { if (spatial.getUserData(UserDataKeys.HITTED)) {
//Todo Check life time and set points int pointsToAdd = Integer.parseInt(player.getUserData(UserDataKeys.POINTS).toString()) + points;
player.setUserData(UserDataKeys.POINTS, pointsToAdd);
} else {
points -= tpf / 2;
if(points < 75) {
starColor = new ColorRGBA(0.5f, 0.5f, 0.5f, 1f);
//Todo Set color to spatial
}
} }
} }
public Control cloneForSpatial(Spatial spatial) { public Control cloneForSpatial(Spatial spatial) {
StarPointControl control = new StarPointControl(); StarPointControl control = new StarPointControl(player);
spatial.addControl(control); spatial.addControl(control);
return control; return control;
} }

View File

@ -27,6 +27,7 @@ import org.jaudiotagger.tag.Tag;
import org.wyrez.shootingstars.game.GameSettings; import org.wyrez.shootingstars.game.GameSettings;
import org.wyrez.shootingstars.gui.controls.ButtonBase; import org.wyrez.shootingstars.gui.controls.ButtonBase;
import org.wyrez.shootingstars.gui.listener.FileMetaInfoListener; import org.wyrez.shootingstars.gui.listener.FileMetaInfoListener;
import org.wyrez.shootingstars.helper.ScreenHelper;
import tonegod.gui.controls.buttons.Button; import tonegod.gui.controls.buttons.Button;
import tonegod.gui.controls.text.Label; import tonegod.gui.controls.text.Label;
import tonegod.gui.controls.windows.Panel; import tonegod.gui.controls.windows.Panel;
@ -40,25 +41,28 @@ public class FileMetaInfoGUI extends Panel implements Gui {
private FileMetaInfoListener listener; private FileMetaInfoListener listener;
private GameSettings settings; private GameSettings settings;
private ScreenHelper screenHelper;
private String fileName = ""; private String fileName = "";
private String duration = ""; private String duration = "";
private String title = ""; private String title = "";
private String artist = ""; private String artist = "";
public FileMetaInfoGUI(Screen screen, FileMetaInfoListener listener, GameSettings settings) { public FileMetaInfoGUI(Screen screen, FileMetaInfoListener listener, GameSettings settings, ScreenHelper screenHelper) {
super(screen, new Vector2f(0f, 0f), new Vector2f(1280f, 720f)); super(screen, new Vector2f(0f, 0f), new Vector2f(1280f, 720f));
this.listener = listener; this.listener = listener;
this.settings = settings; this.settings = settings;
this.screenHelper = screenHelper;
this.setIgnoreMouse(true); this.setIgnoreMouse(true);
this.setIsVisible(false); this.setIsVisible(false);
create(); create();
} }
private void create() { private void create() {
float startPointx = 256f; float startPointx = screenHelper.calcX(256f);
float startPointy = 202f; float startPointy = screenHelper.calcY(202f);
float marginLeft = 110f; float marginLeft = screenHelper.calcX(110f);
float buttonWidth = 153.6f; float buttonWidth = screenHelper.calcX(153.6f);
float labelFontSize = screenHelper.calcX(20f);
File file = null; File file = null;
if(settings.useVideo()) { if(settings.useVideo()) {
@ -69,45 +73,55 @@ public class FileMetaInfoGUI extends Panel implements Gui {
readMetaData(file); readMetaData(file);
Label lblFileNameHead = new Label(screen, new Vector2f(startPointx, startPointy), new Vector2f(100f, 40f)); Label lblFileNameHead = new Label(screen, new Vector2f(startPointx, startPointy), new Vector2f(screenHelper.calcX(100f), screenHelper.calcY(40f)));
lblFileNameHead.setText("Track Name"); lblFileNameHead.setText("Track Name");
lblFileNameHead.setFontSize(labelFontSize);
Label lblFileName = new Label(screen, new Vector2f(startPointx + marginLeft, startPointy), new Vector2f(400f, 40f)); Label lblFileName = new Label(screen, new Vector2f(startPointx + marginLeft, startPointy), new Vector2f(screenHelper.calcX(400f), screenHelper.calcY(40f)));
lblFileName.setText(fileName); lblFileName.setText(fileName);
lblFileName.setFontSize(labelFontSize);
Label lblArtistHead = new Label(screen, new Vector2f(startPointx, startPointy + 50f), new Vector2f(100f, 40f)); Label lblArtistHead = new Label(screen, new Vector2f(startPointx, startPointy + screenHelper.calcY(50f)), new Vector2f(screenHelper.calcX(100f), screenHelper.calcY(40f)));
lblArtistHead.setText("Artist"); lblArtistHead.setText("Artist");
lblArtistHead.setFontSize(labelFontSize);
Label lblArtist = new Label(screen, new Vector2f(startPointx + marginLeft, startPointy + 50f), new Vector2f(400f, 40f)); Label lblArtist = new Label(screen, new Vector2f(startPointx + marginLeft, startPointy + screenHelper.calcY(50f)), new Vector2f(screenHelper.calcX(400f), screenHelper.calcY(40f)));
lblArtist.setText(artist); lblArtist.setText(artist);
lblArtist.setFontSize(labelFontSize);
Label lblTitelHead = new Label(screen, new Vector2f(startPointx, startPointy + 100f), new Vector2f(100f, 40f)); Label lblTitelHead = new Label(screen, new Vector2f(startPointx, startPointy + screenHelper.calcY(100f)), new Vector2f(screenHelper.calcX(100f), screenHelper.calcY(40f)));
lblTitelHead.setText("Titel"); lblTitelHead.setText("Titel");
lblTitelHead.setFontSize(labelFontSize);
Label lblTitel = new Label(screen, new Vector2f(startPointx + marginLeft, startPointy + 100f), new Vector2f(400f, 40f)); Label lblTitel = new Label(screen, new Vector2f(startPointx + marginLeft, startPointy + screenHelper.calcY(100f)), new Vector2f(screenHelper.calcX(400f), screenHelper.calcY(40f)));
lblTitel.setText(title); lblTitel.setText(title);
lblTitel.setFontSize(labelFontSize);
Label lblDurationHead = new Label(screen, new Vector2f(startPointx, startPointy + 150f), new Vector2f(100f, 40f)); Label lblDurationHead = new Label(screen, new Vector2f(startPointx, startPointy + screenHelper.calcY(150f)), new Vector2f(screenHelper.calcX(100f), screenHelper.calcY(40f)));
lblDurationHead.setText("Duration"); lblDurationHead.setText("Duration");
lblDurationHead.setFontSize(labelFontSize);
Label lblDuration = new Label(screen, new Vector2f(startPointx + marginLeft, startPointy + 150f), new Vector2f(400f, 40f)); Label lblDuration = new Label(screen, new Vector2f(startPointx + marginLeft, startPointy + screenHelper.calcY(150f)), new Vector2f(screenHelper.calcX(400f), screenHelper.calcY(40f)));
lblDuration.setText(duration); lblDuration.setText(duration);
lblDuration.setFontSize(labelFontSize);
Button btnStartLoading = new ButtonBase(screen, new Vector2f(startPointx + 653f, startPointy + 438.8f), new Vector2f(buttonWidth, 40)) { Button btnStartLoading = new ButtonBase(screen, new Vector2f(startPointx + screenHelper.calcX(653f), startPointy + screenHelper.calcY(438.8f)), new Vector2f(buttonWidth, screenHelper.calcY(40))) {
@Override @Override
public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) { public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) {
listener.startLoading(); listener.startLoading();
} }
}; };
btnStartLoading.setText("Play"); btnStartLoading.setText("Play");
btnStartLoading.setFontSize(labelFontSize);
Button btnCancel = new ButtonBase(screen, new Vector2f(startPointx + 836f, startPointy + 438.8f), new Vector2f(buttonWidth, 40)) { Button btnCancel = new ButtonBase(screen, new Vector2f(startPointx + screenHelper.calcX(836f), startPointy + screenHelper.calcY(438.8f)), new Vector2f(buttonWidth, screenHelper.calcY(40))) {
@Override @Override
public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) { public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) {
listener.cancel(); listener.cancel();
} }
}; };
btnCancel.setText("Cancel"); btnCancel.setText("Cancel");
btnCancel.setFontSize(labelFontSize);
this.addChild(lblFileNameHead); this.addChild(lblFileNameHead);
this.addChild(lblFileName); this.addChild(lblFileName);

View File

@ -25,8 +25,10 @@ import com.jme3.math.Vector2f;
import com.jme3.scene.Spatial; import com.jme3.scene.Spatial;
import com.jme3.ui.Picture; import com.jme3.ui.Picture;
import org.wyrez.shootingstars.gui.controls.ButtonBase; import org.wyrez.shootingstars.gui.controls.ButtonBase;
import org.wyrez.shootingstars.gui.controls.GuiPlayerPointsControl;
import org.wyrez.shootingstars.gui.controls.IndicatorBase; import org.wyrez.shootingstars.gui.controls.IndicatorBase;
import org.wyrez.shootingstars.gui.listener.GameListener; import org.wyrez.shootingstars.gui.listener.GameListener;
import org.wyrez.shootingstars.helper.ScreenHelper;
import tonegod.gui.controls.buttons.Button; import tonegod.gui.controls.buttons.Button;
import tonegod.gui.controls.extras.Indicator; import tonegod.gui.controls.extras.Indicator;
import tonegod.gui.controls.text.Label; import tonegod.gui.controls.text.Label;
@ -47,11 +49,15 @@ public class GameGUI extends Panel {
private Picture picCrosshair; private Picture picCrosshair;
private Indicator indOverheat; private Indicator indOverheat;
private AssetManager assetManager; private AssetManager assetManager;
private Spatial player;
private Label lblPoints;
private ScreenHelper screenHelper;
public GameGUI(Screen screen, GameListener listener, AssetManager assetManager) { public GameGUI(Screen screen, GameListener listener, AssetManager assetManager, ScreenHelper screenHelper) {
super(screen, new Vector2f(0f, 0f), new Vector2f(1280f, 720f)); //create for full hd super(screen, new Vector2f(0f, 0f), new Vector2f(1280f, 720f)); //create for full hd
this.listener = listener; this.listener = listener;
this.assetManager = assetManager; this.assetManager = assetManager;
this.screenHelper = screenHelper;
this.setIgnoreMouse(true); this.setIgnoreMouse(true);
this.setIsVisible(false); this.setIsVisible(false);
create(); create();
@ -59,19 +65,24 @@ public class GameGUI extends Panel {
private void create() { private void create() {
float startPointx = 537f; float startPointx = screenHelper.calcX(537f);
float startPointy = 576f; float startPointy = screenHelper.calcY(576f);
float startPointCrosshairx = 441f; float startPointCrosshairx = screenHelper.calcX(441f);
float startPointCrosshairy = 560f; float startPointCrosshairy = screenHelper.calcY(560f);
float startPointOverheatx = 505f; float startPointOverheatx = screenHelper.calcX(505f);
float startPointOverheaty = 270f; float startPointOverheaty = screenHelper.calcY(270f);
float startPointYMenu = 200f; float startPointPointsx = screenHelper.calcX(1100f);
float startPointPointsy = screenHelper.calcY(25f);
float startPointYMenu = screenHelper.calcY(200f);
float labelFontSize = screenHelper.calcX(20f);
btnStart = new ButtonBase(screen, new Vector2f(startPointx, startPointy), btnStart = new ButtonBase(screen, new Vector2f(startPointx, startPointy),
new Vector2f(200f, 30f)) { new Vector2f(screenHelper.calcX(200f), screenHelper.calcY(30f))) {
@Override @Override
public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) { public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) {
listener.start(); listener.start();
@ -79,9 +90,10 @@ public class GameGUI extends Panel {
}; };
btnStart.setText("Launch"); btnStart.setText("Launch");
btnStart.setTextAlign(BitmapFont.Align.Center); btnStart.setTextAlign(BitmapFont.Align.Center);
btnStart.setFontSize(labelFontSize);
btnResume = new ButtonBase(screen, new Vector2f(startPointx, startPointYMenu), btnResume = new ButtonBase(screen, new Vector2f(startPointx, startPointYMenu),
new Vector2f(200f, 30f)) { new Vector2f(screenHelper.calcX(200f), screenHelper.calcY(30f))) {
@Override @Override
public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) { public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) {
listener.resume(); listener.resume();
@ -89,9 +101,10 @@ public class GameGUI extends Panel {
}; };
btnResume.setText("Resume"); btnResume.setText("Resume");
btnResume.setTextAlign(BitmapFont.Align.Center); btnResume.setTextAlign(BitmapFont.Align.Center);
btnResume.setFontSize(labelFontSize);
btnMenu = new ButtonBase(screen, new Vector2f(startPointx, startPointYMenu + 40f), btnMenu = new ButtonBase(screen, new Vector2f(startPointx, startPointYMenu + screenHelper.calcY(40f)),
new Vector2f(200f, 30f)) { new Vector2f(screenHelper.calcX(200f), screenHelper.calcY(30f))) {
@Override @Override
public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) { public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) {
listener.cancelTrack(); listener.cancelTrack();
@ -99,10 +112,11 @@ public class GameGUI extends Panel {
}; };
btnMenu.setText("Menu"); btnMenu.setText("Menu");
btnMenu.setTextAlign(BitmapFont.Align.Center); btnMenu.setTextAlign(BitmapFont.Align.Center);
btnMenu.setFontSize(labelFontSize);
picCrosshair = new Picture("Crosshair"); picCrosshair = new Picture("Crosshair");
picCrosshair.setWidth(400f); picCrosshair.setWidth(screenHelper.calcX(400f));
picCrosshair.setHeight(400f); picCrosshair.setHeight(screenHelper.calcY(400f));
picCrosshair.setImage(assetManager, "Textures/Crosshair.png", true); picCrosshair.setImage(assetManager, "Textures/Crosshair.png", true);
Panel plnCrosshair = new Panel(screen, new Vector2f(startPointCrosshairx, startPointCrosshairy), new Vector2f(0f, 0f)); Panel plnCrosshair = new Panel(screen, new Vector2f(startPointCrosshairx, startPointCrosshairy), new Vector2f(0f, 0f));
@ -111,22 +125,28 @@ public class GameGUI extends Panel {
plnCrosshair.attachChild(picCrosshair); plnCrosshair.attachChild(picCrosshair);
indOverheat = new IndicatorBase(screen, new Vector2f(startPointOverheatx, startPointOverheaty), indOverheat = new IndicatorBase(screen, new Vector2f(startPointOverheatx, startPointOverheaty),
new Vector2f(275f, 180f), Indicator.Orientation.VERTICAL); new Vector2f(screenHelper.calcX(275f), screenHelper.calcY(180f)), Indicator.Orientation.VERTICAL);
indOverheat.setIndicatorColor(new ColorRGBA(0f, 0f, 1f, 0.5f)); //indOverheat.setIndicatorColor(new ColorRGBA(0f, 0f, 1f, 0.5f));
indOverheat.setAlphaMap("Textures/Crosshair_AlphaMap.png"); indOverheat.setAlphaMap("Textures/Crosshair_AlphaMap.png");
indOverheat.setOverlayImage("Textures/Crosshair_OverlayImage.png"); indOverheat.setOverlayImage("Textures/Crosshair_OverlayImage.png");
//indOverheat.setBaseImage("Textures/Crosshair_Overheat_Fog.png"); indOverheat.setIndicatorImage("Textures/Crosshair_Overheat_Fog.png");
lblPoints = new Label(screen, new Vector2f(startPointPointsx, startPointPointsy), new Vector2f(screenHelper.calcX(275f), screenHelper.calcY(180f)));
lblPoints.setFontColor(new ColorRGBA(1f, 0f, 0f, 1f));
lblPoints.setFontSize(screenHelper.calcX(50f));
this.addChild(btnStart); this.addChild(btnStart);
this.addChild(btnResume); this.addChild(btnResume);
this.addChild(btnMenu); this.addChild(btnMenu);
this.addChild(indOverheat); this.addChild(indOverheat);
this.addChild(plnCrosshair); this.addChild(plnCrosshair);
this.addChild(lblPoints);
btnResume.hide(); btnResume.hide();
btnMenu.hide(); btnMenu.hide();
picCrosshair.setCullHint(CullHint.Always); picCrosshair.setCullHint(CullHint.Always);
indOverheat.hide(); indOverheat.hide();
lblPoints.hide();
} }
public void setStart() { public void setStart() {
@ -135,6 +155,7 @@ public class GameGUI extends Panel {
btnMenu.hide(); btnMenu.hide();
picCrosshair.setCullHint(CullHint.Inherit); picCrosshair.setCullHint(CullHint.Inherit);
indOverheat.show(); indOverheat.show();
lblPoints.show();
} }
public void setWait() { public void setWait() {
@ -143,6 +164,7 @@ public class GameGUI extends Panel {
btnMenu.hide(); btnMenu.hide();
picCrosshair.setCullHint(CullHint.Always); picCrosshair.setCullHint(CullHint.Always);
indOverheat.hide(); indOverheat.hide();
lblPoints.hide();
} }
public void showMenu() { public void showMenu() {
@ -151,6 +173,7 @@ public class GameGUI extends Panel {
btnMenu.show(); btnMenu.show();
picCrosshair.setCullHint(CullHint.Always); picCrosshair.setCullHint(CullHint.Always);
indOverheat.hide(); indOverheat.hide();
lblPoints.hide();
} }
public void resumeGame() { public void resumeGame() {
@ -159,6 +182,7 @@ public class GameGUI extends Panel {
btnMenu.hide(); btnMenu.hide();
picCrosshair.setCullHint(CullHint.Inherit); picCrosshair.setCullHint(CullHint.Inherit);
indOverheat.show(); indOverheat.show();
lblPoints.show();
} }
public void attach() { public void attach() {
@ -172,8 +196,17 @@ public class GameGUI extends Panel {
public void updateOverhead(float percent) { public void updateOverhead(float percent) {
indOverheat.setCurrentValue(percent); indOverheat.setCurrentValue(percent);
} }
public void setPoints(String points) {
lblPoints.setText(points);
}
public void setMaxTimeToOverheat(float maxTimeToOverheat) { public void setMaxTimeToOverheat(float maxTimeToOverheat) {
indOverheat.setMaxValue(maxTimeToOverheat); indOverheat.setMaxValue(maxTimeToOverheat);
} }
public void setPlayer(Spatial player) {
this.player = player;
this.addControl(new GuiPlayerPointsControl(player, this));
}
} }

View File

@ -21,7 +21,9 @@ import com.jme3.math.Vector2f;
import java.util.List; import java.util.List;
import org.wyrez.shootingstars.gui.controls.ButtonBase; import org.wyrez.shootingstars.gui.controls.ButtonBase;
import org.wyrez.shootingstars.gui.listener.HighscoreListener; import org.wyrez.shootingstars.gui.listener.HighscoreListener;
import org.wyrez.shootingstars.gui.manager.HighscoreManager;
import org.wyrez.shootingstars.gui.model.Score; import org.wyrez.shootingstars.gui.model.Score;
import org.wyrez.shootingstars.helper.ScreenHelper;
import tonegod.gui.controls.buttons.Button; import tonegod.gui.controls.buttons.Button;
import tonegod.gui.controls.text.Label; import tonegod.gui.controls.text.Label;
import tonegod.gui.controls.windows.Panel; import tonegod.gui.controls.windows.Panel;
@ -34,14 +36,16 @@ import tonegod.gui.core.Screen;
public class HighscoreGUI extends Panel implements Gui { public class HighscoreGUI extends Panel implements Gui {
private HighscoreListener listener; private HighscoreListener listener;
//private HighscoreManager highscoreManager; private HighscoreManager highscoreManager;
private ScreenHelper screenHelper;
public HighscoreGUI(Screen screen, HighscoreListener listener) { public HighscoreGUI(Screen screen, HighscoreListener listener, HighscoreManager highscoreManager, ScreenHelper screenHelper) {
super(screen, new Vector2f(0f, 0f), new Vector2f(1280f, 720f)); super(screen, new Vector2f(0f, 0f), new Vector2f(1280f, 720f));
this.listener = listener; this.listener = listener;
this.highscoreManager = highscoreManager;
this.screenHelper = screenHelper;
this.setIgnoreMouse(true); this.setIgnoreMouse(true);
this.setIsVisible(false); this.setIsVisible(false);
//highscoreManager = new HighscoreManager();
create(); create();
} }
@ -54,64 +58,66 @@ public class HighscoreGUI extends Panel implements Gui {
} }
private void create() { private void create() {
float startPointx = 32f; float startPointx = screenHelper.calcX(32f);
float startPointy = 18f; float startPointy = screenHelper.calcY(18f);
//Only Test float marginScoreNameLeft = screenHelper.calcX(14f);
// highscoreManager.addScore("Lied Name", "Chris", 50); float marginScorePointsLeft = screenHelper.calcX(300f);
// highscoreManager.addScore("Lied Name", "Chris", 150); float marginScoreSongNameLeft = screenHelper.calcX(600f);
// highscoreManager.addScore("Lied Name", "Chris", 250);
// highscoreManager.addScore("Lied Name", "Chris", 350);
// highscoreManager.addScore("Lied Name", "Chris", 450);
// highscoreManager.addScore("Lied Name", "Chris", 550);
// highscoreManager.addScore("Lied Name", "Chris", 650);
// highscoreManager.addScore("Lied Name", "Chris", 750);
// highscoreManager.addScore("Lied Name", "Chris", 850);
// highscoreManager.addScore("Lied Name", "Chris", 950);
// highscoreManager.updateScoreFile();
float marginScoreTop = screenHelper.calcY(50f);
float labelFontSize = screenHelper.calcX(20f);
float marginScoreNameLeft = 14f; List<Score> highscores = highscoreManager.getScores();
float marginScorePointsLeft = 300f;
float marginScoreSongNameLeft = 600f;
float marginScoreTop = 50f; Label lblScoreNameHead = new Label(screen, new Vector2f(startPointx + marginScoreNameLeft, startPointy), new Vector2f(screenHelper.calcX(250f), screenHelper.calcY(40f)));
//List<Score> highscores = highscoreManager.getScores();
Label lblScoreNameHead = new Label(screen, new Vector2f(startPointx + marginScoreNameLeft, startPointy), new Vector2f(250f, 40f));
lblScoreNameHead.setText("Name"); lblScoreNameHead.setText("Name");
lblScoreNameHead.setFontSize(labelFontSize);
Label lblScorePointsHead = new Label(screen, new Vector2f(startPointx + marginScorePointsLeft, startPointy), new Vector2f(250f, 40f)); Label lblScorePointsHead = new Label(screen, new Vector2f(startPointx + marginScorePointsLeft, startPointy), new Vector2f(screenHelper.calcX(250f), screenHelper.calcY(40f)));
lblScorePointsHead.setText("Points"); lblScorePointsHead.setText("Points");
lblScorePointsHead.setFontSize(labelFontSize);
Label lblScoreSongNameHead = new Label(screen, new Vector2f(startPointx + marginScoreSongNameLeft, startPointy), new Vector2f(600f, 40f)); Label lblScoreSongNameHead = new Label(screen, new Vector2f(startPointx + marginScoreSongNameLeft, startPointy), new Vector2f(screenHelper.calcX(600f), screenHelper.calcY(40f)));
lblScoreSongNameHead.setText("Song Name"); lblScoreSongNameHead.setText("Song Name");
lblScoreSongNameHead.setFontSize(labelFontSize);
// for (int i = 0; i < 10; i++) { int maxScores = 0;
// Score score = highscores.get(i); if(highscores.size() > 10) {
// Label lblScoreName = new Label(screen, new Vector2f(startPointx + marginScoreNameLeft, startPointy + marginScoreTop), new Vector2f(250f, 40f)); maxScores = 10;
// lblScoreName.setText(score.getPlayerName()); } else {
// maxScores = highscores.size();
// Label lblScorePoints = new Label(screen, new Vector2f(startPointx + marginScorePointsLeft, startPointy + marginScoreTop), new Vector2f(250f, 40f)); }
// lblScorePoints.setText(String.valueOf(score.getScore()));
// for (int i = 0; i < maxScores; i++) {
// Label lblScoreSongName = new Label(screen, new Vector2f(startPointx + marginScoreSongNameLeft, startPointy + marginScoreTop), new Vector2f(600f, 40f)); Score score = highscores.get(i);
// lblScoreSongName.setText(score.getSongName()); Label lblScoreName = new Label(screen, new Vector2f(startPointx + marginScoreNameLeft, startPointy + marginScoreTop), new Vector2f(screenHelper.calcX(250f), screenHelper.calcY(40f)));
// lblScoreName.setText(score.getPlayerName());
// this.addChild(lblScoreName); lblScoreName.setFontSize(labelFontSize);
// this.addChild(lblScorePoints);
// this.addChild(lblScoreSongName);
// marginScoreTop += 50f;
// }
Button btnBack = new ButtonBase(screen, new Vector2f(startPointx + 1060f, startPointy + 622.8f), new Vector2f(153f, 40)) { Label lblScorePoints = new Label(screen, new Vector2f(startPointx + marginScorePointsLeft, startPointy + marginScoreTop), new Vector2f(screenHelper.calcX(250f), screenHelper.calcY(40f)));
lblScorePoints.setText(String.valueOf(score.getScore()));
lblScorePoints.setFontSize(labelFontSize);
Label lblScoreSongName = new Label(screen, new Vector2f(startPointx + marginScoreSongNameLeft, startPointy + marginScoreTop), new Vector2f(screenHelper.calcX(600f), screenHelper.calcY(40f)));
lblScoreSongName.setText(score.getSongName());
lblScoreSongName.setFontSize(labelFontSize);
this.addChild(lblScoreName);
this.addChild(lblScorePoints);
this.addChild(lblScoreSongName);
marginScoreTop += screenHelper.calcY(50f);
}
Button btnBack = new ButtonBase(screen, new Vector2f(startPointx + screenHelper.calcX(1060f), startPointy + screenHelper.calcY(622.8f)), new Vector2f(screenHelper.calcX(153f), screenHelper.calcY(40f))) {
@Override @Override
public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) { public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) {
listener.back(); listener.back();
} }
}; };
btnBack.setText("Back"); btnBack.setText("Back");
btnBack.setFontSize(labelFontSize);
this.addChild(lblScoreNameHead); this.addChild(lblScoreNameHead);
this.addChild(lblScorePointsHead); this.addChild(lblScorePointsHead);

View File

@ -20,6 +20,7 @@ import com.jme3.font.BitmapFont;
import com.jme3.math.ColorRGBA; import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector2f; import com.jme3.math.Vector2f;
import org.wyrez.shootingstars.gui.controls.IndicatorBase; import org.wyrez.shootingstars.gui.controls.IndicatorBase;
import org.wyrez.shootingstars.helper.ScreenHelper;
import org.wyrez.shootingstars.states.util.LoadingProgress; import org.wyrez.shootingstars.states.util.LoadingProgress;
import tonegod.gui.controls.extras.Indicator; import tonegod.gui.controls.extras.Indicator;
import tonegod.gui.controls.text.Label; import tonegod.gui.controls.text.Label;
@ -34,9 +35,11 @@ public class LoadingGui extends Panel {
private Label lblStatus; private Label lblStatus;
private Indicator indProgress; private Indicator indProgress;
private ScreenHelper screenHelper;
public LoadingGui(Screen screen) { public LoadingGui(Screen screen, ScreenHelper screenHelper) {
super(screen, new Vector2f(0f, 0f), new Vector2f(1280f, 720f)); //create for full hd super(screen, new Vector2f(0f, 0f), new Vector2f(1280f, 720f)); //create for full hd
this.screenHelper = screenHelper;
this.setIgnoreMouse(true); this.setIgnoreMouse(true);
this.setIsVisible(false); this.setIsVisible(false);
create(); create();
@ -44,17 +47,17 @@ public class LoadingGui extends Panel {
private void create() { private void create() {
float startPointx = 537f;//screen.getWidth() * 0.42f; float startPointx = screenHelper.calcX(537f);
float startPointy = 576f;//screen.getHeight() * 0.80f; float startPointy = screenHelper.calcY(576f);
float distancePogressbarLabely = 36f; float distancePogressbarLabely = screenHelper.calcY(36f);
indProgress = new IndicatorBase(screen, new Vector2f(startPointx, startPointy), indProgress = new IndicatorBase(screen, new Vector2f(startPointx, startPointy),
new Vector2f(200f, 30f), Indicator.Orientation.HORIZONTAL); new Vector2f(screenHelper.calcX(200f), screenHelper.calcY(30f)), Indicator.Orientation.HORIZONTAL);
indProgress.setDisplayValues(); indProgress.setDisplayValues();
indProgress.setMaxValue(LoadingProgress.getProgressCount()); indProgress.setMaxValue(LoadingProgress.getProgressCount());
indProgress.setIndicatorColor(ColorRGBA.Black); indProgress.setIndicatorColor(ColorRGBA.Black);
lblStatus = new Label(screen, new Vector2f(startPointx, startPointy + distancePogressbarLabely), new Vector2f(200f, 30f)); lblStatus = new Label(screen, new Vector2f(startPointx, startPointy + distancePogressbarLabely), new Vector2f(screenHelper.calcX(200f), screenHelper.calcY(30f)));
lblStatus.setTextAlign(BitmapFont.Align.Center); lblStatus.setTextAlign(BitmapFont.Align.Center);
this.addChild(indProgress); this.addChild(indProgress);

View File

@ -20,6 +20,7 @@ import com.jme3.input.event.MouseButtonEvent;
import com.jme3.math.Vector2f; import com.jme3.math.Vector2f;
import org.wyrez.shootingstars.gui.controls.ButtonBase; import org.wyrez.shootingstars.gui.controls.ButtonBase;
import org.wyrez.shootingstars.gui.listener.MenuListener; import org.wyrez.shootingstars.gui.listener.MenuListener;
import org.wyrez.shootingstars.helper.ScreenHelper;
import tonegod.gui.controls.buttons.Button; import tonegod.gui.controls.buttons.Button;
import tonegod.gui.controls.text.Label; import tonegod.gui.controls.text.Label;
import tonegod.gui.controls.windows.Panel; import tonegod.gui.controls.windows.Panel;
@ -32,10 +33,12 @@ import tonegod.gui.core.Screen;
public class MenuGUI extends Panel implements Gui { public class MenuGUI extends Panel implements Gui {
private MenuListener listener; private MenuListener listener;
private ScreenHelper screenHelper;
public MenuGUI(Screen screen, MenuListener listener) { public MenuGUI(Screen screen, MenuListener listener, ScreenHelper screenHelper) {
super(screen, new Vector2f(0f, 0f), new Vector2f(1280f, 720f)); //create for full hd super(screen, new Vector2f(0f, 0f), new Vector2f(1280f, 720f)); //create for full hd
this.listener = listener; this.listener = listener;
this.screenHelper = screenHelper;
this.setIgnoreMouse(true); this.setIgnoreMouse(true);
this.setIsVisible(false); this.setIsVisible(false);
create(); create();
@ -43,55 +46,60 @@ public class MenuGUI extends Panel implements Gui {
private void create() { private void create() {
float startPointx = 256f; float startPointx = screenHelper.calcX(256f);
float startPointy = 252f; float startPointy = screenHelper.calcY(252f);
float labelFontSize = 89f; float labelFontSize = screenHelper.calcX(89f);
float buttonLabelDistancex = 512f; float buttonLabelDistancex = screenHelper.calcX(512f);
float buttonButtonDistancex = buttonLabelDistancex + 192f; float buttonButtonDistancex = buttonLabelDistancex + screenHelper.calcX(192f);
float buttonButtonDistancey = 90f; float buttonButtonDistancey = screenHelper.calcY(90f);
float buttonWidth = 153f; float buttonWidth = screenHelper.calcX(153f);
float marginButtonTop = 25f; float marginButtonTop = screenHelper.calcY(25f);
float distanceLabelLabely = 60f; float distanceLabelLabely = screenHelper.calcY(60f);
float buttonFontSize = screenHelper.calcX(20f);
Label lblWyrez = new Label(screen, new Vector2f(startPointx, startPointy), new Vector2f(300, 40)); Label lblWyrez = new Label(screen, new Vector2f(startPointx, startPointy), new Vector2f(screenHelper.calcX(300), screenHelper.calcY(40)));
lblWyrez.setFontSize(labelFontSize); lblWyrez.setFontSize(labelFontSize);
lblWyrez.setText("Wyrez"); lblWyrez.setText("Wyrez");
Label lblShootingStars = new Label(screen, new Vector2f(startPointx, startPointy + distanceLabelLabely), new Vector2f(500, 40)); Label lblShootingStars = new Label(screen, new Vector2f(startPointx, startPointy + distanceLabelLabely), new Vector2f(screenHelper.calcX(500), screenHelper.calcY(40)));
lblShootingStars.setFontSize(labelFontSize); lblShootingStars.setFontSize(labelFontSize);
lblShootingStars.setText("Shooting Stars"); lblShootingStars.setText("Shooting Stars");
Button btnStart = new ButtonBase(screen, new Vector2f(startPointx + buttonLabelDistancex, startPointy + marginButtonTop), new Vector2f(buttonWidth, 40)) { Button btnStart = new ButtonBase(screen, new Vector2f(startPointx + buttonLabelDistancex, startPointy + marginButtonTop), new Vector2f(buttonWidth, screenHelper.calcY(40))) {
@Override @Override
public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) { public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) {
listener.selectFile(); listener.selectFile();
} }
}; };
btnStart.setText("Start Game"); btnStart.setText("Start Game");
btnStart.setFontSize(buttonFontSize);
Button btnHighscore = new ButtonBase(screen, new Vector2f(startPointx + buttonButtonDistancex, startPointy + marginButtonTop), new Vector2f(buttonWidth, 40)) { Button btnHighscore = new ButtonBase(screen, new Vector2f(startPointx + buttonButtonDistancex, startPointy + marginButtonTop), new Vector2f(buttonWidth, screenHelper.calcY(40))) {
@Override @Override
public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) { public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) {
listener.openhighscore(); listener.openhighscore();
} }
}; };
btnHighscore.setText("Highscore"); btnHighscore.setText("Highscore");
btnHighscore.setFontSize(buttonFontSize);
Button btnOptions = new ButtonBase(screen, new Vector2f(startPointx + buttonLabelDistancex, startPointy + buttonButtonDistancey), new Vector2f(buttonWidth, 40)) { Button btnOptions = new ButtonBase(screen, new Vector2f(startPointx + buttonLabelDistancex, startPointy + buttonButtonDistancey), new Vector2f(buttonWidth, screenHelper.calcY(40))) {
@Override @Override
public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) { public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) {
listener.openOptions(); listener.openOptions();
} }
}; };
btnOptions.setText("Options"); btnOptions.setText("Options");
btnOptions.setFontSize(buttonFontSize);
Button btnExit = new ButtonBase(screen, new Vector2f(startPointx + buttonButtonDistancex, startPointy + buttonButtonDistancey), new Vector2f(buttonWidth, 40)) { Button btnExit = new ButtonBase(screen, new Vector2f(startPointx + buttonButtonDistancex, startPointy + buttonButtonDistancey), new Vector2f(buttonWidth, screenHelper.calcY(40))) {
@Override @Override
public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) { public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) {
listener.exitGame(); listener.exitGame();
} }
}; };
btnExit.setText("Exit Game"); btnExit.setText("Exit Game");
btnExit.setFontSize(buttonFontSize);
this.addChild(btnStart); this.addChild(btnStart);
this.addChild(btnHighscore); this.addChild(btnHighscore);

View File

@ -21,6 +21,7 @@ import com.jme3.math.Vector2f;
import org.wyrez.shootingstars.gui.controls.ButtonBase; import org.wyrez.shootingstars.gui.controls.ButtonBase;
import org.wyrez.shootingstars.gui.listener.OptionsListener; import org.wyrez.shootingstars.gui.listener.OptionsListener;
import org.wyrez.shootingstars.helper.DisplayHelper; import org.wyrez.shootingstars.helper.DisplayHelper;
import org.wyrez.shootingstars.helper.ScreenHelper;
import org.wyrez.shootingstars.states.util.OptionSettings; import org.wyrez.shootingstars.states.util.OptionSettings;
import tonegod.gui.controls.buttons.Button; import tonegod.gui.controls.buttons.Button;
import tonegod.gui.controls.buttons.CheckBox; import tonegod.gui.controls.buttons.CheckBox;
@ -40,6 +41,8 @@ public class OptionsGUI extends Panel implements Gui {
private OptionsListener listener; private OptionsListener listener;
private OptionSettings settings; private OptionSettings settings;
private ScreenHelper screenHelper;
//General Controls //General Controls
private TextField txtPlayerName; private TextField txtPlayerName;
@ -56,10 +59,11 @@ public class OptionsGUI extends Panel implements Gui {
private Slider sldFXVolume; private Slider sldFXVolume;
private Slider sldSoundVolume; private Slider sldSoundVolume;
public OptionsGUI(Screen screen, OptionsListener listener, OptionSettings settings) { public OptionsGUI(Screen screen, OptionsListener listener, OptionSettings settings, ScreenHelper screenHelper) {
super(screen, new Vector2f(0f, 0f), new Vector2f(1280f, 720f)); //create for full hd super(screen, new Vector2f(0f, 0f), new Vector2f(1280f, 720f)); //create for full hd
this.listener = listener; this.listener = listener;
this.settings = settings; this.settings = settings;
this.screenHelper = screenHelper;
this.setIgnoreMouse(true); this.setIgnoreMouse(true);
this.setIsVisible(false); this.setIsVisible(false);
create(); create();
@ -75,12 +79,15 @@ public class OptionsGUI extends Panel implements Gui {
} }
private void create() { private void create() {
float tabControlStartPointx = 32f; float tabControlStartPointx = screenHelper.calcX(32f);
float tabControlStartPointy = 18f; float tabControlStartPointy = screenHelper.calcY(18f);
float witdhTabControl = 1216f; float witdhTabControl = screenHelper.calcX(1216f);
float heightTabControl = 612f; float heightTabControl = screenHelper.calcY(612f);
float buttonWidth = 153.6f; float buttonWidth = screenHelper.calcX(153.6f);
float buttonHeight = screenHelper.calcY(40f);
float labelFontSize = screenHelper.calcX(20f);
TabControl tcOptions = new TabControl(screen, "tcOptions", new Vector2f(tabControlStartPointx, tabControlStartPointy), new Vector2f(witdhTabControl, heightTabControl)); TabControl tcOptions = new TabControl(screen, "tcOptions", new Vector2f(tabControlStartPointx, tabControlStartPointy), new Vector2f(witdhTabControl, heightTabControl));
tcOptions.setUseSlideEffect(true); tcOptions.setUseSlideEffect(true);
@ -88,13 +95,13 @@ public class OptionsGUI extends Panel implements Gui {
tcOptions.addTab("Video"); tcOptions.addTab("Video");
tcOptions.addTab("Audio"); tcOptions.addTab("Audio");
createGeneralTab(tcOptions); createGeneralTab(tcOptions,labelFontSize);
createVideoTab(tcOptions); createVideoTab(tcOptions,labelFontSize);
createAudioTab(tcOptions); createAudioTab(tcOptions,labelFontSize);
float differnceTabControlButtons = 622.8f; float differnceTabControlButtons = screenHelper.calcY(622.8f);
Button btnSave = new ButtonBase(screen, new Vector2f(tabControlStartPointx + 877f, tabControlStartPointy + differnceTabControlButtons), new Vector2f(buttonWidth, 40)) { Button btnSave = new ButtonBase(screen, new Vector2f(tabControlStartPointx + screenHelper.calcX(877f), tabControlStartPointy + differnceTabControlButtons), new Vector2f(buttonWidth, buttonHeight)) {
@Override @Override
public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) { public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) {
saveControlValues(); saveControlValues();
@ -102,146 +109,181 @@ public class OptionsGUI extends Panel implements Gui {
} }
}; };
btnSave.setText("Save"); btnSave.setText("Save");
btnSave.setFontSize(labelFontSize);
Button btnCancel = new ButtonBase(screen, new Vector2f(tabControlStartPointx + 1060f, tabControlStartPointy + differnceTabControlButtons), new Vector2f(buttonWidth, 40)) { Button btnCancel = new ButtonBase(screen, new Vector2f(tabControlStartPointx + screenHelper.calcX(1060f), tabControlStartPointy + differnceTabControlButtons), new Vector2f(buttonWidth, buttonHeight)) {
@Override @Override
public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) { public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) {
listener.cancel(); listener.cancel();
} }
}; };
btnCancel.setText("Cancel"); btnCancel.setText("Cancel");
btnCancel.setFontSize(labelFontSize);
this.addChild(tcOptions); this.addChild(tcOptions);
this.addChild(btnSave); this.addChild(btnSave);
this.addChild(btnCancel); this.addChild(btnCancel);
} }
private void createGeneralTab(TabControl tcOptions) { private void createGeneralTab(TabControl tcOptions, float labelFontSize) {
float startPointx = 64f; float startPointx = screenHelper.calcX(64f);
float startPointy = 36f; float startPointy = screenHelper.calcY(36f);
float marginLeftControls = 115.8f; float marginLeftControls = screenHelper.calcX(115.8f);
Label lblPlayerName = new Label(screen, new Vector2f(startPointx, startPointy), new Vector2f(120f, 40f)); Label lblPlayerName = new Label(screen, new Vector2f(startPointx, startPointy), new Vector2f(screenHelper.calcX(120f), screenHelper.calcY(40f)));
lblPlayerName.setText("PlayerName"); lblPlayerName.setText("PlayerName");
lblPlayerName.setFontSize(labelFontSize);
txtPlayerName = new TextField(screen, new Vector2f(startPointx + marginLeftControls, startPointy + 7f), new Vector2f(200f, 30f)); txtPlayerName = new TextField(screen, new Vector2f(startPointx + marginLeftControls, startPointy + screenHelper.calcY(7f)), new Vector2f(screenHelper.calcX(200f), screenHelper.calcY(30f)));
txtPlayerName.setFontSize(labelFontSize);
tcOptions.addTabChild(0, lblPlayerName); tcOptions.addTabChild(0, lblPlayerName);
tcOptions.addTabChild(0, txtPlayerName); tcOptions.addTabChild(0, txtPlayerName);
} }
private void createVideoTab(TabControl tcOptions) { private void createVideoTab(TabControl tcOptions, float labelFontSize) {
float startPointx = 64f; float startPointx = screenHelper.calcX(64f);
float startPointy = 36f; float startPointy = screenHelper.calcY(36f);
float marginLeftControls = 115.8f; float marginLeftControls = screenHelper.calcX(115.8f);
float labelWitdh = screenHelper.calcX(120f);
float labelHeight = screenHelper.calcY(40f);
float comboBoxWidth = screenHelper.calcX(200f);
float comboBoxHeight = screenHelper.calcY(30f);
float checkBoxWitdh = screenHelper.calcX(20f);
float checkBoxHeight = screenHelper.calcX(20f);
float sliderWitdh = screenHelper.calcX(200f);
float sliderHeight = screenHelper.calcY(30f);
Label lblResolution = new Label(screen, "lblResolution", new Vector2f(startPointx, startPointy), new Vector2f(100f, 40f)); Label lblResolution = new Label(screen, "lblResolution", new Vector2f(startPointx, startPointy), new Vector2f(labelWitdh, labelHeight));
lblResolution.setText("Resolution"); lblResolution.setText("Resolution");
lblResolution.setFontSize(labelFontSize);
cboResolution = new ComboBox(screen, new Vector2f(startPointx + marginLeftControls, startPointy + 7f), new Vector2f(200f, 30f)) { cboResolution = new ComboBox(screen, new Vector2f(startPointx + marginLeftControls, startPointy + screenHelper.calcY(7f)), new Vector2f(comboBoxWidth, comboBoxHeight)) {
@Override @Override
public void onChange(int selectedIndex, Object value) { public void onChange(int selectedIndex, Object value) {
} }
}; };
cboResolution.setFontSize(labelFontSize);
for (String s : DisplayHelper.getResolutions()) { for (String s : DisplayHelper.getResolutions()) {
cboResolution.addListItem(s, s); cboResolution.addListItem(s, s);
} }
Label lblFrequency = new Label(screen, "lblFrequency", new Vector2f(startPointx, startPointy + 40f), new Vector2f(100f, 40f)); Label lblFrequency = new Label(screen, "lblFrequency", new Vector2f(startPointx, startPointy + screenHelper.calcY(40f)), new Vector2f(labelWitdh, labelHeight));
lblFrequency.setText("Frequency"); lblFrequency.setText("Frequency");
lblFrequency.setFontSize(labelFontSize);
cboFrequency = new ComboBox(screen, new Vector2f(startPointx + marginLeftControls, startPointy + 47f), new Vector2f(200f, 30f)) { cboFrequency = new ComboBox(screen, new Vector2f(startPointx + marginLeftControls, startPointy + screenHelper.calcY(47f)), new Vector2f(comboBoxWidth, comboBoxHeight)) {
@Override @Override
public void onChange(int selectedIndex, Object value) { public void onChange(int selectedIndex, Object value) {
} }
}; };
cboFrequency.setFontSize(labelFontSize);
for (String s : DisplayHelper.getFrequencys()) { for (String s : DisplayHelper.getFrequencys()) {
cboFrequency.addListItem(s, s); cboFrequency.addListItem(s, s);
} }
Label lblDepthBits = new Label(screen, "lblDepthBits", new Vector2f(startPointx, startPointy + 80f), new Vector2f(100f, 40f)); Label lblDepthBits = new Label(screen, "lblDepthBits", new Vector2f(startPointx, startPointy + screenHelper.calcY(80f)), new Vector2f(labelWitdh, labelHeight));
lblDepthBits.setText("DepthBits"); lblDepthBits.setText("DepthBits");
lblDepthBits.setFontSize(labelFontSize);
cboDepthBits = new ComboBox(screen, new Vector2f(startPointx + marginLeftControls, startPointy + 87f), new Vector2f(200f, 30f)) { cboDepthBits = new ComboBox(screen, new Vector2f(startPointx + marginLeftControls, startPointy + screenHelper.calcY(87f)), new Vector2f(comboBoxWidth, comboBoxHeight)) {
@Override @Override
public void onChange(int selectedIndex, Object value) { public void onChange(int selectedIndex, Object value) {
} }
}; };
cboDepthBits.setFontSize(labelFontSize);
for (String s : DisplayHelper.getDepthBits()) { for (String s : DisplayHelper.getDepthBits()) {
cboDepthBits.addListItem(s, s); cboDepthBits.addListItem(s, s);
} }
Label lblFullscreen = new Label(screen, "lblFullscreen", new Vector2f(startPointx, startPointy + 120f), new Vector2f(100f, 40f)); Label lblFullscreen = new Label(screen, "lblFullscreen", new Vector2f(startPointx, startPointy + screenHelper.calcY(120f)), new Vector2f(labelWitdh, labelHeight));
lblFullscreen.setText("Fullscreen"); lblFullscreen.setText("Fullscreen");
lblFullscreen.setFontSize(labelFontSize);
chkFullscreen = new CheckBox(screen, new Vector2f(startPointx + marginLeftControls, startPointy + 132f), new Vector2f(20f, 20f)); chkFullscreen = new CheckBox(screen, new Vector2f(startPointx + marginLeftControls, startPointy + screenHelper.calcY(132f)), new Vector2f(checkBoxWitdh, checkBoxHeight));
Label lblVSync = new Label(screen, "lblVSync", new Vector2f(startPointx, startPointy + 160f), new Vector2f(100f, 40f)); Label lblVSync = new Label(screen, "lblVSync", new Vector2f(startPointx, startPointy + screenHelper.calcY(160f)), new Vector2f(labelWitdh, labelHeight));
lblVSync.setText("VSync"); lblVSync.setText("VSync");
lblVSync.setFontSize(labelFontSize);
chkVSync = new CheckBox(screen, new Vector2f(startPointx + marginLeftControls, startPointy + 172f), new Vector2f(20f, 20f)); chkVSync = new CheckBox(screen, new Vector2f(startPointx + marginLeftControls, startPointy + screenHelper.calcY(172f)), new Vector2f(checkBoxWitdh, checkBoxHeight));
Label lblPostProcessing = new Label(screen, "lblPostProcessing", new Vector2f(startPointx, startPointy + 200f), new Vector2f(120f, 40f)); Label lblPostProcessing = new Label(screen, "lblPostProcessing", new Vector2f(startPointx, startPointy + screenHelper.calcY(200f)), new Vector2f(labelWitdh, labelHeight));
lblPostProcessing.setText("PostProcessing"); lblPostProcessing.setText("PostProcessing");
lblPostProcessing.setFontSize(labelFontSize);
chkPostProcessing = new CheckBox(screen, new Vector2f(startPointx + marginLeftControls, startPointy + 212f), new Vector2f(20f, 20f)); chkPostProcessing = new CheckBox(screen, new Vector2f(startPointx + marginLeftControls, startPointy + screenHelper.calcY(212f)), new Vector2f(checkBoxWitdh, checkBoxHeight));
Label lblParticleDensity = new Label(screen, "lblParticleDensity", new Vector2f(startPointx, startPointy + 240f), new Vector2f(120f, 40f)); Label lblParticleDensity = new Label(screen, "lblParticleDensity", new Vector2f(startPointx, startPointy +screenHelper.calcY(240f)), new Vector2f(labelWitdh, labelHeight));
lblParticleDensity.setText("ParticleDensity"); lblParticleDensity.setText("ParticleDensity");
lblParticleDensity.setFontSize(labelFontSize);
sldParticleDensity = new Slider(screen, new Vector2f(startPointx + marginLeftControls, startPointy + 247f), new Vector2f(200f, 30f), Slider.Orientation.HORIZONTAL, false) { sldParticleDensity = new Slider(screen, new Vector2f(startPointx + marginLeftControls, startPointy + screenHelper.calcY(247f)), new Vector2f(sliderWitdh, sliderHeight), Slider.Orientation.HORIZONTAL, false) {
@Override @Override
public void onChange(int selectedIndex, Object value) { public void onChange(int selectedIndex, Object value) {
} }
}; };
sldParticleDensity.setStepIntegerRange(0, 3, 1); sldParticleDensity.setStepIntegerRange(0, 3, 1);
tcOptions.addTabChild(1, lblResolution);
tcOptions.addTabChild(1, cboResolution);
tcOptions.addTabChild(1, lblFrequency);
tcOptions.addTabChild(1, cboFrequency);
tcOptions.addTabChild(1, lblDepthBits);
tcOptions.addTabChild(1, cboDepthBits);
tcOptions.addTabChild(1, lblFullscreen);
tcOptions.addTabChild(1, chkFullscreen);
tcOptions.addTabChild(1, lblVSync); tcOptions.addTabChild(1, lblVSync);
tcOptions.addTabChild(1, chkVSync); tcOptions.addTabChild(1, chkVSync);
tcOptions.addTabChild(1, lblFullscreen);
tcOptions.addTabChild(1, chkFullscreen);
tcOptions.addTabChild(1, lblDepthBits);
tcOptions.addTabChild(1, cboDepthBits);
tcOptions.addTabChild(1, lblFrequency);
tcOptions.addTabChild(1, cboFrequency);
tcOptions.addTabChild(1, lblResolution);
tcOptions.addTabChild(1, cboResolution);
tcOptions.addTabChild(1, lblPostProcessing); tcOptions.addTabChild(1, lblPostProcessing);
tcOptions.addTabChild(1, chkPostProcessing); tcOptions.addTabChild(1, chkPostProcessing);
tcOptions.addTabChild(1, lblParticleDensity); tcOptions.addTabChild(1, lblParticleDensity);
tcOptions.addTabChild(1, sldParticleDensity); tcOptions.addTabChild(1, sldParticleDensity);
} }
private void createAudioTab(TabControl tcOptions) { private void createAudioTab(TabControl tcOptions, float labelFontSize) {
float startPointx = 64f; float startPointx = screenHelper.calcX(64f);
float startPointy = 36f; float startPointy = screenHelper.calcY(36f);
float marginLeftControls = 115.8f; float marginLeftControls = screenHelper.calcX(115.8f);
float labelWitdh = screenHelper.calcX(120f);
float labelHeight = screenHelper.calcY(40f);
float sliderWitdh = screenHelper.calcX(200f);
float sliderHeight = screenHelper.calcY(30f);
Label lblMasterVolume = new Label(screen, "lblMasterVolume", new Vector2f(startPointx, startPointy), new Vector2f(120f, 40f)); Label lblMasterVolume = new Label(screen, "lblMasterVolume", new Vector2f(startPointx, startPointy), new Vector2f(labelWitdh, labelHeight));
lblMasterVolume.setText("MasterVolume"); lblMasterVolume.setText("MasterVolume");
lblMasterVolume.setFontSize(labelFontSize);
sldMasterVolume = new Slider(screen, new Vector2f(startPointx + marginLeftControls, startPointy + 7f), new Vector2f(200f, 30f), Slider.Orientation.HORIZONTAL, false) { sldMasterVolume = new Slider(screen, new Vector2f(startPointx + marginLeftControls, startPointy + screenHelper.calcY(7f)), new Vector2f(sliderWitdh, sliderHeight), Slider.Orientation.HORIZONTAL, false) {
@Override @Override
public void onChange(int selectedIndex, Object value) { public void onChange(int selectedIndex, Object value) {
} }
}; };
sldMasterVolume.setStepIntegerRange(0, 100, 1); sldMasterVolume.setStepIntegerRange(0, 100, 1);
Label lblFXVolume = new Label(screen, "lblFXVolume", new Vector2f(startPointx, startPointy + 40f), new Vector2f(100f, 40f)); Label lblFXVolume = new Label(screen, "lblFXVolume", new Vector2f(startPointx, startPointy + screenHelper.calcY(40f)), new Vector2f(labelWitdh, labelHeight));
lblFXVolume.setText("FXVolume"); lblFXVolume.setText("FXVolume");
lblFXVolume.setFontSize(labelFontSize);
sldFXVolume = new Slider(screen, new Vector2f(startPointx + marginLeftControls, startPointy + 47f), new Vector2f(200f, 30f), Slider.Orientation.HORIZONTAL, false) { sldFXVolume = new Slider(screen, new Vector2f(startPointx + marginLeftControls, startPointy + screenHelper.calcY(47f)), new Vector2f(sliderWitdh, sliderHeight), Slider.Orientation.HORIZONTAL, false) {
@Override @Override
public void onChange(int selectedIndex, Object value) { public void onChange(int selectedIndex, Object value) {
} }
}; };
sldFXVolume.setStepIntegerRange(0, 100, 1); sldFXVolume.setStepIntegerRange(0, 100, 1);
Label lblSoundVolume = new Label(screen, "lblSoundVolume", new Vector2f(startPointx, startPointy + 80f), new Vector2f(120f, 40f)); Label lblSoundVolume = new Label(screen, "lblSoundVolume", new Vector2f(startPointx, startPointy + screenHelper.calcY(80f)), new Vector2f(labelWitdh, labelHeight));
lblSoundVolume.setText("SoundVolume"); lblSoundVolume.setText("SoundVolume");
lblSoundVolume.setFontSize(labelFontSize);
sldSoundVolume = new Slider(screen, new Vector2f(startPointx + marginLeftControls, startPointy + 87f), new Vector2f(200f, 30f), Slider.Orientation.HORIZONTAL, false) { sldSoundVolume = new Slider(screen, new Vector2f(startPointx + marginLeftControls, startPointy + screenHelper.calcY(87f)), new Vector2f(sliderWitdh, sliderHeight), Slider.Orientation.HORIZONTAL, false) {
@Override @Override
public void onChange(int selectedIndex, Object value) { public void onChange(int selectedIndex, Object value) {
} }

View File

@ -20,6 +20,7 @@ import com.jme3.input.event.MouseButtonEvent;
import com.jme3.math.Vector2f; import com.jme3.math.Vector2f;
import org.wyrez.shootingstars.gui.controls.ButtonBase; import org.wyrez.shootingstars.gui.controls.ButtonBase;
import org.wyrez.shootingstars.gui.listener.SelectFileListener; import org.wyrez.shootingstars.gui.listener.SelectFileListener;
import org.wyrez.shootingstars.helper.ScreenHelper;
import tonegod.gui.controls.buttons.Button; import tonegod.gui.controls.buttons.Button;
import tonegod.gui.controls.text.Label; import tonegod.gui.controls.text.Label;
import tonegod.gui.controls.windows.Panel; import tonegod.gui.controls.windows.Panel;
@ -31,52 +32,61 @@ import tonegod.gui.core.Screen;
*/ */
public class SelectTrackGUI extends Panel implements Gui{ public class SelectTrackGUI extends Panel implements Gui{
SelectFileListener listener; private SelectFileListener listener;
private ScreenHelper screenHelper;
public SelectTrackGUI(Screen screen, SelectFileListener listener) { public SelectTrackGUI(Screen screen, SelectFileListener listener, ScreenHelper screenHelper) {
super(screen, new Vector2f(0f, 0f), new Vector2f(1280f, 720f)); //create for full hd super(screen, new Vector2f(0f, 0f), new Vector2f(1280f, 720f)); //create for full hd
this.listener = listener; this.listener = listener;
this.screenHelper = screenHelper;
this.setIgnoreMouse(true); this.setIgnoreMouse(true);
this.setIsVisible(false); this.setIsVisible(false);
create(); create();
} }
private void create() { private void create() {
float startPointx = 576f; float startPointx = screenHelper.calcX(576f);
float startPointy = 260f; float startPointy = screenHelper.calcY(260f);
float labelFontSize = 76f; float labelFontSize = screenHelper.calcX(76f);
float buttonWidth = 153f; float buttonWidth = screenHelper.calcX(153f);
float marginLabelOrLeft = 45f; float marginLabelOrLeft = screenHelper.calcX(45f);
float marginLabelOrTop = 43f; float marginLabelOrTop = screenHelper.calcY(43f);
float marginButtonYTDownloadTop = 129f; float marginButtonYTDownloadTop = screenHelper.calcY(129f);
float buttonHeight = screenHelper.calcY(40f);
float labelWitdh = screenHelper.calcX(100f);
float labelHeight = screenHelper.calcY(40f);
float buttonFontSize = screenHelper.calcX(20f);
Button btnSelectFile = new ButtonBase(screen, new Vector2f(startPointx, startPointy), new Vector2f(buttonWidth, 40)) { Button btnSelectFile = new ButtonBase(screen, new Vector2f(startPointx, startPointy), new Vector2f(buttonWidth, buttonHeight)) {
@Override @Override
public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) { public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) {
listener.selectFile(); listener.selectFile();
} }
}; };
btnSelectFile.setText("Select File"); btnSelectFile.setText("Select File");
btnSelectFile.setFontSize(buttonFontSize);
Label lblOr = new Label(screen, new Vector2f(startPointx + marginLabelOrLeft, startPointy + marginLabelOrTop), new Vector2f(100, 40)); Label lblOr = new Label(screen, new Vector2f(startPointx + marginLabelOrLeft, startPointy + marginLabelOrTop), new Vector2f(labelWitdh, labelHeight));
lblOr.setFontSize(labelFontSize); lblOr.setFontSize(labelFontSize);
lblOr.setText("Or"); lblOr.setText("Or");
Button btnYTDownload = new ButtonBase(screen, new Vector2f(startPointx, startPointy + marginButtonYTDownloadTop), new Vector2f(buttonWidth, 40)) { Button btnYTDownload = new ButtonBase(screen, new Vector2f(startPointx, startPointy + marginButtonYTDownloadTop), new Vector2f(buttonWidth, buttonHeight)) {
@Override @Override
public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) { public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) {
listener.downloadYT(); listener.downloadYT();
} }
}; };
btnYTDownload.setText("YT Download"); btnYTDownload.setText("YT Download");
btnYTDownload.setFontSize(buttonFontSize);
Button btnCancel = new ButtonBase(screen, new Vector2f(startPointx, startPointy + marginButtonYTDownloadTop + 114f), new Vector2f(buttonWidth, 40)) { Button btnCancel = new ButtonBase(screen, new Vector2f(startPointx, startPointy + marginButtonYTDownloadTop + screenHelper.calcY(114f)), new Vector2f(buttonWidth, buttonHeight)) {
@Override @Override
public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) { public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) {
listener.cancel(); listener.cancel();
} }
}; };
btnCancel.setText("Cancel"); btnCancel.setText("Cancel");
btnCancel.setFontSize(buttonFontSize);
this.addChild(btnSelectFile); this.addChild(btnSelectFile);
this.addChild(lblOr); this.addChild(lblOr);

View File

@ -20,6 +20,7 @@ import com.jme3.input.event.MouseButtonEvent;
import com.jme3.math.Vector2f; import com.jme3.math.Vector2f;
import org.wyrez.shootingstars.gui.controls.ButtonBase; import org.wyrez.shootingstars.gui.controls.ButtonBase;
import org.wyrez.shootingstars.gui.listener.YTDownloadListener; import org.wyrez.shootingstars.gui.listener.YTDownloadListener;
import org.wyrez.shootingstars.helper.ScreenHelper;
import tonegod.gui.controls.buttons.Button; import tonegod.gui.controls.buttons.Button;
import tonegod.gui.controls.text.Label; import tonegod.gui.controls.text.Label;
import tonegod.gui.controls.text.TextField; import tonegod.gui.controls.text.TextField;
@ -33,45 +34,66 @@ import tonegod.gui.core.Screen;
public class YTDownloadGUI extends Panel implements Gui{ public class YTDownloadGUI extends Panel implements Gui{
private YTDownloadListener listener; private YTDownloadListener listener;
private ScreenHelper screenHelper;
public YTDownloadGUI(Screen screen, YTDownloadListener listener) { public YTDownloadGUI(Screen screen, YTDownloadListener listener, ScreenHelper screenHelper) {
super(screen, new Vector2f(0f, 0f), new Vector2f(1280f, 720f)); //create for full hd super(screen, new Vector2f(0f, 0f), new Vector2f(1280f, 720f)); //create for full hd
this.listener = listener; this.listener = listener;
this.screenHelper = screenHelper;
this.setIgnoreMouse(true); this.setIgnoreMouse(true);
this.setIsVisible(false); this.setIsVisible(false);
create(); create();
} }
private void create() { private void create() {
float startPointx = 384f;//screen.getWidth() * 0.3f; float startPointx = screenHelper.calcX(384f);
float startPointy = 324f;//screen.getHeight() * 0.45f; float startPointy = screenHelper.calcY(324f);
float labelFontSize = 51.2f;//screen.getWidth() * 0.04f; float labelFontSize = screenHelper.calcX(51.2f);
float buttonWidth = 153f;//screen.getWidth() * 0.12f; float buttonWidth = screenHelper.calcX(153f);
float textFieldWitdh = 409f;//screen.getWidth() * 0.32f; float textFieldWitdh = screenHelper.calcX(409f);
float marginTextFieldLeft = 153f; float marginTextFieldLeft = screenHelper.calcX(153f);
float marginTextFieldTop = 8.64f; float marginTextFieldTop = screenHelper.calcY(8.64f);
float marginYTButtonLeft = 409f; float marginYTButtonLeft = screenHelper.calcX(250f);
float marginYTButtonTop = 72f; float marginCancelButtonLeft = screenHelper.calcX(409f);
float marginYTButtonTop = screenHelper.calcY(72f);
float labelWitdh = screenHelper.calcX(160f);
float labelHeight = screenHelper.calcY(40f);
float buttonFontSize = screenHelper.calcX(20f);
float buttonHeight = screenHelper.calcY(40f);
float textFieldHeight = screenHelper.calcY(40f);
Label lblYTLink = new Label(screen, new Vector2f(startPointx, startPointy), new Vector2f(160, 40)); Label lblYTLink = new Label(screen, new Vector2f(startPointx, startPointy), new Vector2f(labelWitdh, labelHeight));
lblYTLink.setFontSize(labelFontSize); lblYTLink.setFontSize(labelFontSize);
lblYTLink.setText("YT Link"); lblYTLink.setText("YT Link");
final TextField txtYTLink = new TextField(screen,"txtYTLink", new Vector2f(startPointx + marginTextFieldLeft, startPointy + marginTextFieldTop), new Vector2f(textFieldWitdh, 40)); final TextField txtYTLink = new TextField(screen,"txtYTLink", new Vector2f(startPointx + marginTextFieldLeft, startPointy + marginTextFieldTop), new Vector2f(textFieldWitdh, textFieldHeight));
txtYTLink.setType(TextField.Type.DEFAULT); txtYTLink.setType(TextField.Type.DEFAULT);
txtYTLink.setFontSize(buttonFontSize);
Button btnYTDownload = new ButtonBase(screen, new Vector2f(startPointx + marginYTButtonLeft, startPointy + marginYTButtonTop), new Vector2f(buttonWidth, 40)) { Button btnYTDownload = new ButtonBase(screen, new Vector2f(startPointx + marginYTButtonLeft, startPointy + marginYTButtonTop), new Vector2f(buttonWidth, buttonHeight)) {
@Override @Override
public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) { public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) {
listener.downloadYTVideo(txtYTLink.getText()); listener.downloadYTVideo(txtYTLink.getText());
} }
}; };
btnYTDownload.setText("Download"); btnYTDownload.setText("Download");
btnYTDownload.setFontSize(buttonFontSize);
Button btnCancel = new ButtonBase(screen, new Vector2f(startPointx + marginCancelButtonLeft, startPointy + marginYTButtonTop), new Vector2f(buttonWidth, buttonHeight)) {
@Override
public void onButtonMouseLeftUp(MouseButtonEvent evt, boolean toggled) {
listener.cancel();
}
};
btnCancel.setText("Cancel");
btnCancel.setFontSize(buttonFontSize);
this.addChild(lblYTLink); this.addChild(lblYTLink);
this.addChild(txtYTLink); this.addChild(txtYTLink);
this.addChild(btnYTDownload); this.addChild(btnYTDownload);
this.addChild(btnCancel);
} }
public void attach() { public void attach() {

View File

@ -0,0 +1,52 @@
/*
* Copyright (C) 2013 Snowsun <http://wyrez.org> and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.wyrez.shootingstars.gui.controls;
import com.jme3.scene.Spatial;
import com.jme3.scene.control.Control;
import org.wyrez.shootingstars.controls.BaseControl;
import org.wyrez.shootingstars.gui.GameGUI;
import org.wyrez.shootingstars.helper.UserDataKeys;
/**
*
* @author Snowsun
*/
public class GuiPlayerPointsControl extends BaseControl {
private Spatial player;
private GameGUI gui;
public GuiPlayerPointsControl(Spatial player, GameGUI gui) {
this.player = player;
this.gui = gui;
}
@Override
protected void controlUpdate(float tpf) {
if(player.getUserData(UserDataKeys.POINTS) != null) {
gui.setPoints(player.getUserData(UserDataKeys.POINTS).toString());
}
}
public Control cloneForSpatial(Spatial spatial) {
GuiPlayerPointsControl control = new GuiPlayerPointsControl(player, gui);
spatial.addControl(control);
return control;
}
}

View File

@ -23,4 +23,6 @@ package org.wyrez.shootingstars.gui.listener;
public interface YTDownloadListener { public interface YTDownloadListener {
public void downloadYTVideo(String url); public void downloadYTVideo(String url);
public void cancel();
} }

View File

@ -0,0 +1,77 @@
/*
* Copyright (C) 2013 Rappold <http://wyrez.org> and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.wyrez.shootingstars.gui.manager;
/**
*
* @author Rappold
*/
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.*;
import org.wyrez.shootingstars.gui.model.Score;
import org.wyrez.shootingstars.io.SQLiteConnector;
public class HighscoreManager {
private List<Score> scores;
private Connection connection;
private SQLiteConnector connector;
private ScoreComparator scoreComparator;
public HighscoreManager(SQLiteConnector connector, ScoreComparator scoreComparator) {
this.connector = connector;
this.scoreComparator = scoreComparator;
connection = connector.initDBConnection();
scores = new ArrayList<Score>();
loadScoreFile();
}
public List<Score> getScores() {
sort();
return scores;
}
private void sort() {
Collections.sort(scores, scoreComparator);
}
public void addScore(String songName, String name, int score) {
scores.add(new Score(songName, name, score));
updateScoreFile(name, score, songName);
}
private void loadScoreFile() {
try {
ResultSet rs = connector.excecuteQuery(connection, "SELECT * FROM Scores;");
while (rs.next()) {
scores.add(new Score(rs.getString("SongName"), rs.getString("Name"), rs.getInt("Points")));
}
rs.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void updateScoreFile(String name, int score, String songName) {
try {
connector.excecuteUpdate(connection, "INSERT INTO Scores(Name,Points,SongName) values('" + name + "'," + score + ", '" + songName + "')");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}

View File

@ -0,0 +1,40 @@
/*
* Copyright (C) 2013 Rappold <http://wyrez.org> and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.wyrez.shootingstars.gui.manager;
/**
*
* @author Rappold
*/
import java.util.Comparator;
import org.wyrez.shootingstars.gui.model.Score;
public class ScoreComparator implements Comparator<Score> {
public int compare(Score score1, Score score2) {
int sc1 = score1.getScore();
int sc2 = score2.getScore();
if (sc1 > sc2){
return -1;
}else if (sc1 < sc2){
return +1;
}else{
return 0;
}
}
}

View File

@ -32,9 +32,11 @@ public class DisplayHelper {
List<String> resolutions = new ArrayList<String>(); List<String> resolutions = new ArrayList<String>();
for (DisplayMode mode : GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayModes()) { for (DisplayMode mode : GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayModes()) {
String resolution = mode.getWidth() + " x " + mode.getHeight(); if (mode.getWidth() >= 1024) {
if (!resolutions.contains(resolution)) { String resolution = mode.getWidth() + " x " + mode.getHeight();
resolutions.add(resolution); if (!resolutions.contains(resolution)) {
resolutions.add(resolution);
}
} }
} }
Collections.sort(resolutions); Collections.sort(resolutions);
@ -43,7 +45,7 @@ public class DisplayHelper {
public static List<String> getFrequencys() { public static List<String> getFrequencys() {
List<String> frequencys = new ArrayList<String>(); List<String> frequencys = new ArrayList<String>();
for (DisplayMode mode : GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayModes()) { for (DisplayMode mode : GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayModes()) {
if (!frequencys.contains(String.valueOf(mode.getRefreshRate()))) { if (!frequencys.contains(String.valueOf(mode.getRefreshRate()))) {
frequencys.add(String.valueOf(mode.getRefreshRate())); frequencys.add(String.valueOf(mode.getRefreshRate()));

View File

@ -0,0 +1,27 @@
package org.wyrez.shootingstars.helper;
import tonegod.gui.core.Screen;
/**
*
* @author Snowsun
*/
public class ScreenHelper {
private static final float X = 1280;
private static final float Y = 720;
private Screen screen;
public ScreenHelper(Screen screen) {
this.screen = screen;
}
public float calcX(float value) {
return screen.getWidth() * ((100/X) * value) / 100;
}
public float calcY(float value) {
return screen.getHeight() * ((100/Y) * value) / 100;
}
}

View File

@ -25,4 +25,5 @@ public class UserDataKeys {
public static final String HITTED = "isHitted"; public static final String HITTED = "isHitted";
public static final String SHOOTING = "isShooting"; public static final String SHOOTING = "isShooting";
public static final String RUNNING = "isRunning"; public static final String RUNNING = "isRunning";
public static final String POINTS = "points";
} }

View File

@ -0,0 +1,83 @@
/*
* Copyright (C) 2013 Rappold <http://wyrez.org> and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.wyrez.shootingstars.io;
/**
*
* @author Rappold
*/
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class SQLiteConnector {
private static final String DB_PATH = "scoresdb.db";
public SQLiteConnector() {
}
public Connection initDBConnection() {
Connection connection = null;
boolean newFile = false;
try {
Class.forName("org.sqlite.JDBC");
String sqliteTable = "CREATE TABLE Scores (Name VARCHAR(250), Points INT(20), SongName VARCHAR(250))";
File sQLiteDb = new File(DB_PATH);
if (!sQLiteDb.exists()) {
sQLiteDb.createNewFile();
newFile = true;
}
connection = DriverManager.getConnection("jdbc:sqlite:" + DB_PATH);
if(newFile) {
Statement stmt = connection.createStatement();
stmt.executeUpdate(sqliteTable);
}
return connection;
} catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
public ResultSet excecuteQuery(Connection con, String query) {
ResultSet result = null;
try {
Statement stmt = con.createStatement();
result = stmt.executeQuery(query);
} catch (Exception ex) {
ex.printStackTrace();
}
return result;
}
public int excecuteUpdate(Connection con, String query) {
int result = 0;
try {
Statement stmt = con.createStatement();
result = stmt.executeUpdate(query);
} catch (Exception ex) {
ex.printStackTrace();
}
return result;
}
}

View File

@ -22,6 +22,7 @@ import org.wyrez.shootingstars.game.GameSettings;
import org.wyrez.shootingstars.gui.FileMetaInfoGUI; import org.wyrez.shootingstars.gui.FileMetaInfoGUI;
import org.wyrez.shootingstars.gui.Gui; import org.wyrez.shootingstars.gui.Gui;
import org.wyrez.shootingstars.gui.listener.FileMetaInfoListener; import org.wyrez.shootingstars.gui.listener.FileMetaInfoListener;
import org.wyrez.shootingstars.helper.ScreenHelper;
import tonegod.gui.core.Screen; import tonegod.gui.core.Screen;
/** /**
@ -34,10 +35,10 @@ public class FileMetaInfoState extends AbstractAppState implements FileMetaInfoL
private GameSettings settings; private GameSettings settings;
private Gui gui; private Gui gui;
public FileMetaInfoState(Screen screen, StateManager stateManager, GameSettings settings) { public FileMetaInfoState(Screen screen, StateManager stateManager, GameSettings settings, ScreenHelper screenHelper) {
this.stateManager = stateManager; this.stateManager = stateManager;
this.settings = settings; this.settings = settings;
this.gui = new FileMetaInfoGUI(screen, this, settings); this.gui = new FileMetaInfoGUI(screen, this, settings, screenHelper);
} }
public void startLoading() { public void startLoading() {

View File

@ -44,6 +44,7 @@ import org.wyrez.shootingstars.game.Ground;
import org.wyrez.shootingstars.game.Player; import org.wyrez.shootingstars.game.Player;
import org.wyrez.shootingstars.gui.GameGUI; import org.wyrez.shootingstars.gui.GameGUI;
import org.wyrez.shootingstars.gui.listener.GameListener; import org.wyrez.shootingstars.gui.listener.GameListener;
import org.wyrez.shootingstars.helper.ScreenHelper;
import org.wyrez.shootingstars.helper.UserDataKeys; import org.wyrez.shootingstars.helper.UserDataKeys;
import tonegod.gui.core.Screen; import tonegod.gui.core.Screen;
import uk.co.caprica.vlcj.player.MediaPlayerFactory; import uk.co.caprica.vlcj.player.MediaPlayerFactory;
@ -73,10 +74,10 @@ public class GameState extends AbstractAppState implements GameListener, ActionL
public GameState(Node rootNode, Screen screen, StateManager stateManager, public GameState(Node rootNode, Screen screen, StateManager stateManager,
AssetManager assetManager, ViewPort viewPort, AssetManager assetManager, ViewPort viewPort,
InputManager inputManager, Camera camera, AudioDataManager audioDataManager, GameSettings settings) { InputManager inputManager, Camera camera, AudioDataManager audioDataManager, GameSettings settings, ScreenHelper screenHelper) {
this.rootNode = rootNode; this.rootNode = rootNode;
this.gui = new GameGUI(screen, this, assetManager); this.gui = new GameGUI(screen, this, assetManager,screenHelper);
this.stateManager = stateManager; this.stateManager = stateManager;
inputManager.addListener(this, new String[]{"ESC"}); inputManager.addListener(this, new String[]{"ESC"});
@ -113,6 +114,8 @@ public class GameState extends AbstractAppState implements GameListener, ActionL
public void loadPlayer() { public void loadPlayer() {
player = new Player(rootNode, stateManager, assetManager, viewPort, gui, player = new Player(rootNode, stateManager, assetManager, viewPort, gui,
inputManager, camera, audioDataManager); inputManager, camera, audioDataManager);
gui.setPlayer(player);
} }
private void setRunning(boolean running) { private void setRunning(boolean running) {

View File

@ -21,6 +21,8 @@ import com.jme3.app.state.AppStateManager;
import org.wyrez.shootingstars.gui.Gui; import org.wyrez.shootingstars.gui.Gui;
import org.wyrez.shootingstars.gui.HighscoreGUI; import org.wyrez.shootingstars.gui.HighscoreGUI;
import org.wyrez.shootingstars.gui.listener.HighscoreListener; import org.wyrez.shootingstars.gui.listener.HighscoreListener;
import org.wyrez.shootingstars.gui.manager.HighscoreManager;
import org.wyrez.shootingstars.helper.ScreenHelper;
import tonegod.gui.core.Screen; import tonegod.gui.core.Screen;
/** /**
@ -30,11 +32,13 @@ import tonegod.gui.core.Screen;
public class HighscoreState extends AbstractAppState implements HighscoreListener{ public class HighscoreState extends AbstractAppState implements HighscoreListener{
private StateManager stateManager; private StateManager stateManager;
private HighscoreManager highscoreManager;
private Gui gui; private Gui gui;
public HighscoreState(Screen screen, StateManager stateManager) { public HighscoreState(Screen screen, StateManager stateManager, HighscoreManager highscoreManager, ScreenHelper screenHelper) {
this.stateManager = stateManager; this.stateManager = stateManager;
this.gui = new HighscoreGUI(screen, this); this.highscoreManager = highscoreManager;
this.gui = new HighscoreGUI(screen, this, highscoreManager,screenHelper);
} }
public void back() { public void back() {

View File

@ -25,6 +25,7 @@ import org.wyrez.shootingstars.game.GameSettings;
import org.wyrez.shootingstars.gui.LoadingGui; import org.wyrez.shootingstars.gui.LoadingGui;
import org.wyrez.shootingstars.helper.ChecksumHelper; import org.wyrez.shootingstars.helper.ChecksumHelper;
import org.wyrez.shootingstars.helper.PathHelper; import org.wyrez.shootingstars.helper.PathHelper;
import org.wyrez.shootingstars.helper.ScreenHelper;
import org.wyrez.shootingstars.states.util.LoadingProgress; import org.wyrez.shootingstars.states.util.LoadingProgress;
import tonegod.gui.core.Screen; import tonegod.gui.core.Screen;
@ -41,9 +42,9 @@ public class LoadingState extends AbstractAppState {
private GameSettings settings; private GameSettings settings;
public LoadingState(Screen screen, StateManager stateManager, public LoadingState(Screen screen, StateManager stateManager,
AudioDataManager audioDataManager, GameSettings settings) { AudioDataManager audioDataManager, GameSettings settings, ScreenHelper screenHelper) {
this.stateManager = stateManager; this.stateManager = stateManager;
this.gui = new LoadingGui(screen); this.gui = new LoadingGui(screen,screenHelper);
this.audioDataManager = audioDataManager; this.audioDataManager = audioDataManager;
this.settings = settings; this.settings = settings;
} }

View File

@ -22,6 +22,7 @@ import org.wyrez.shootingstars.ShootingStars;
import org.wyrez.shootingstars.gui.Gui; import org.wyrez.shootingstars.gui.Gui;
import org.wyrez.shootingstars.gui.MenuGUI; import org.wyrez.shootingstars.gui.MenuGUI;
import org.wyrez.shootingstars.gui.listener.MenuListener; import org.wyrez.shootingstars.gui.listener.MenuListener;
import org.wyrez.shootingstars.helper.ScreenHelper;
import tonegod.gui.core.Screen; import tonegod.gui.core.Screen;
/** /**
@ -34,9 +35,9 @@ public class MenuState extends AbstractAppState implements MenuListener {
private Gui gui; private Gui gui;
private ShootingStars shootingStars; private ShootingStars shootingStars;
public MenuState(Screen screen, StateManager stateManager, ShootingStars shootingStars) { public MenuState(Screen screen, StateManager stateManager, ShootingStars shootingStars, ScreenHelper screenHelper) {
this.stateManager = stateManager; this.stateManager = stateManager;
this.gui = new MenuGUI(screen, this); this.gui = new MenuGUI(screen, this, screenHelper);
this.shootingStars = shootingStars; this.shootingStars = shootingStars;
} }

View File

@ -20,6 +20,7 @@ import com.jme3.app.state.AbstractAppState;
import com.jme3.app.state.AppStateManager; import com.jme3.app.state.AppStateManager;
import org.wyrez.shootingstars.gui.OptionsGUI; import org.wyrez.shootingstars.gui.OptionsGUI;
import org.wyrez.shootingstars.gui.listener.OptionsListener; import org.wyrez.shootingstars.gui.listener.OptionsListener;
import org.wyrez.shootingstars.helper.ScreenHelper;
import org.wyrez.shootingstars.states.util.OptionSettings; import org.wyrez.shootingstars.states.util.OptionSettings;
import tonegod.gui.core.Screen; import tonegod.gui.core.Screen;
@ -33,10 +34,10 @@ public class OptionsState extends AbstractAppState implements OptionsListener {
private OptionsGUI gui; private OptionsGUI gui;
private OptionSettings settings; private OptionSettings settings;
public OptionsState(Screen screen, StateManager stateManager, OptionSettings settings) { public OptionsState(Screen screen, StateManager stateManager, OptionSettings settings, ScreenHelper screenHelper) {
this.stateManager = stateManager; this.stateManager = stateManager;
this.settings = settings; this.settings = settings;
this.gui = new OptionsGUI(screen, this,settings); this.gui = new OptionsGUI(screen, this,settings, screenHelper);
} }
@Override @Override

View File

@ -23,6 +23,7 @@ import javax.swing.JFileChooser;
import org.wyrez.shootingstars.game.GameSettings; import org.wyrez.shootingstars.game.GameSettings;
import org.wyrez.shootingstars.gui.SelectTrackGUI; import org.wyrez.shootingstars.gui.SelectTrackGUI;
import org.wyrez.shootingstars.gui.listener.SelectFileListener; import org.wyrez.shootingstars.gui.listener.SelectFileListener;
import org.wyrez.shootingstars.helper.ScreenHelper;
import tonegod.gui.core.Screen; import tonegod.gui.core.Screen;
/** /**
@ -35,10 +36,10 @@ public class SelectTrackState extends AbstractAppState implements SelectFileList
private GameSettings settings; private GameSettings settings;
private SelectTrackGUI gui; private SelectTrackGUI gui;
public SelectTrackState(Screen screen, StateManager stateManager, GameSettings settings) { public SelectTrackState(Screen screen, StateManager stateManager, GameSettings settings, ScreenHelper screenHelper) {
this.stateManager = stateManager; this.stateManager = stateManager;
this.settings = settings; this.settings = settings;
this.gui = new SelectTrackGUI(screen, this); this.gui = new SelectTrackGUI(screen, this,screenHelper);
} }
@Override @Override

View File

@ -26,6 +26,7 @@ import org.wyrez.shootingstars.game.GameSettings;
import org.wyrez.shootingstars.gui.YTDownloadGUI; import org.wyrez.shootingstars.gui.YTDownloadGUI;
import org.wyrez.shootingstars.gui.listener.YTDownloadListener; import org.wyrez.shootingstars.gui.listener.YTDownloadListener;
import org.wyrez.shootingstars.helper.PathHelper; import org.wyrez.shootingstars.helper.PathHelper;
import org.wyrez.shootingstars.helper.ScreenHelper;
import tonegod.gui.core.Screen; import tonegod.gui.core.Screen;
/** /**
@ -42,10 +43,10 @@ public class YTDownloadState extends AbstractAppState implements YTDownloadListe
private YTDownloader downloader; private YTDownloader downloader;
public YTDownloadState(Screen screen, StateManager stateManager, public YTDownloadState(Screen screen, StateManager stateManager,
GameSettings settings, YTDownloader downloader) { GameSettings settings, YTDownloader downloader, ScreenHelper screenHelper) {
this.stateManager = stateManager; this.stateManager = stateManager;
this.settings = settings; this.settings = settings;
this.gui = new YTDownloadGUI(screen, this); this.gui = new YTDownloadGUI(screen, this,screenHelper);
this.downloader = downloader; this.downloader = downloader;
} }
@ -94,4 +95,8 @@ public class YTDownloadState extends AbstractAppState implements YTDownloadListe
} }
return null; return null;
} }
public void cancel() {
stateManager.setState(State.MENU);
}
} }