diff --git a/ShootingStars/assets/Gui/Button.xml b/ShootingStars/assets/Gui/Button.xml
new file mode 100644
index 0000000..5d4645b
--- /dev/null
+++ b/ShootingStars/assets/Gui/Button.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ShootingStars/assets/Gui/button.png b/ShootingStars/assets/Gui/button.png
new file mode 100644
index 0000000..c1734e6
Binary files /dev/null and b/ShootingStars/assets/Gui/button.png differ
diff --git a/ShootingStars/assets/Gui/style_map.xml b/ShootingStars/assets/Gui/style_map.xml
new file mode 100644
index 0000000..b9002a1
--- /dev/null
+++ b/ShootingStars/assets/Gui/style_map.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/ShootingStars/src/org/wyrez/shootingstars/ShootingStars.java b/ShootingStars/src/org/wyrez/shootingstars/ShootingStars.java
index 0bb1a6f..b274bcd 100644
--- a/ShootingStars/src/org/wyrez/shootingstars/ShootingStars.java
+++ b/ShootingStars/src/org/wyrez/shootingstars/ShootingStars.java
@@ -54,11 +54,11 @@ public class ShootingStars extends SimpleApplication {
private PersiJContainer container;
private StateManager sManager;
private OptionSettings optionSettings;
+ private Screen screen;
public ShootingStars(OptionSettings optionSettings) {
super(new StatsAppState(), new DebugKeysAppState());
this.optionSettings = optionSettings;
-
Logger.getLogger("").setLevel(Level.SEVERE);
System.setProperty("jna.library.path", "lib/vlc");
}
@@ -75,6 +75,7 @@ public class ShootingStars extends SimpleApplication {
cam.setFrustumFar(2500f);
sManager = container.resolve(StateManager.class);
sManager.setState(State.START);
+ //screen = new Screen(this, "Gui/style_map.xml");
}
private void initGUI() {
diff --git a/ShootingStars/src/org/wyrez/shootingstars/controls/WeaponProjectileCollisionControl.java b/ShootingStars/src/org/wyrez/shootingstars/controls/WeaponProjectileCollisionControl.java
index 39a4d97..f454c4f 100644
--- a/ShootingStars/src/org/wyrez/shootingstars/controls/WeaponProjectileCollisionControl.java
+++ b/ShootingStars/src/org/wyrez/shootingstars/controls/WeaponProjectileCollisionControl.java
@@ -21,6 +21,7 @@ import com.jme3.collision.CollisionResults;
import com.jme3.scene.Node;
import com.jme3.scene.Spatial;
import com.jme3.scene.control.Control;
+import org.wyrez.shootingstars.game.Player;
import org.wyrez.shootingstars.helper.UserDataKeys;
/**
@@ -32,9 +33,11 @@ public class WeaponProjectileCollisionControl extends BaseControl {
private Node starNode;
private BoundingVolume boundingVolume;
private CollisionResults results;
+ private Player player;
- public WeaponProjectileCollisionControl(Node starNode) {
+ public WeaponProjectileCollisionControl(Node starNode, Player player) {
this.starNode = starNode;
+ this.player = player;
this.results = new CollisionResults();
}
@@ -46,17 +49,19 @@ public class WeaponProjectileCollisionControl extends BaseControl {
@Override
protected void controlUpdate(float tpf) {
- for (Spatial s : starNode.getChildren()) {
- results.clear();
- s.collideWith(boundingVolume, results);
- if (results.size() > 0) {
- s.setUserData(UserDataKeys.HITTED, true);
+ if(player.getUserData(UserDataKeys.SHOOTING)) {
+ for (Spatial s : starNode.getChildren()) {
+ results.clear();
+ s.collideWith(boundingVolume, results);
+ if (results.size() > 0) {
+ s.setUserData(UserDataKeys.HITTED, true);
+ }
}
}
}
public Control cloneForSpatial(Spatial spatial) {
- WeaponProjectileCollisionControl control = new WeaponProjectileCollisionControl(starNode);
+ WeaponProjectileCollisionControl control = new WeaponProjectileCollisionControl(starNode,player);
spatial.addControl(control);
return control;
}
diff --git a/ShootingStars/src/org/wyrez/shootingstars/game/Player.java b/ShootingStars/src/org/wyrez/shootingstars/game/Player.java
index 970657d..6277667 100644
--- a/ShootingStars/src/org/wyrez/shootingstars/game/Player.java
+++ b/ShootingStars/src/org/wyrez/shootingstars/game/Player.java
@@ -32,6 +32,7 @@ import org.wyrez.shootingstars.controls.PlayerCamControl;
import org.wyrez.shootingstars.controls.PlayerMouseControl;
import org.wyrez.shootingstars.controls.PlayerMoveControl;
import org.wyrez.shootingstars.controls.PlayerShootControl;
+import org.wyrez.shootingstars.controls.WeaponProjectileCollisionControl;
import org.wyrez.shootingstars.controls.WeaponProjectileControl;
import org.wyrez.shootingstars.data.AudioDataManager;
import org.wyrez.shootingstars.factories.Materials;
@@ -53,13 +54,14 @@ public class Player extends Node {
public Player(Node rootNode, StateManager stateManager, AssetManager assetManager,
ViewPort viewPort, GameGUI gui, InputManager inputManager, Camera camera,
- AudioDataManager audioDataManager) {
+ AudioDataManager audioDataManager, Node starNode) {
super("Player");
-
+
initPlayer(inputManager, camera, audioDataManager, gui);
initWeapon(assetManager);
initProjectile(rootNode);
initWeaponContainer();
+ initGhostProjectile(starNode);
addLight();
}
@@ -93,7 +95,7 @@ public class Player extends Node {
geom2.setMaterial(Materials.WEAPON.create());
geom2.move(0f, 0.25f, -5f);
projectile.attachChild(geom2);
-
+
projectile.addControl(new WeaponProjectileControl(rootNode, this));
}
@@ -109,6 +111,15 @@ public class Player extends Node {
this.attachChild(weaponContainer);
}
+
+ private void initGhostProjectile(Node starNode) {
+ Geometry ghostProjectile = new Geometry("ghostProjectile", new Box(0.1f, 0.1f, 2500f));
+ ghostProjectile.setMaterial(Materials.UNSHADED.create());
+ ghostProjectile.setCullHint(CullHint.Always);
+ ghostProjectile.move(0f,0f,2510f);
+ ghostProjectile.addControl(new WeaponProjectileCollisionControl(starNode,this));
+ this.attachChild(ghostProjectile);
+ }
private void addLight() {
AmbientLight ambient = new AmbientLight();
diff --git a/ShootingStars/src/org/wyrez/shootingstars/game/StarManager.java b/ShootingStars/src/org/wyrez/shootingstars/game/StarManager.java
index 802084f..ffba394 100644
--- a/ShootingStars/src/org/wyrez/shootingstars/game/StarManager.java
+++ b/ShootingStars/src/org/wyrez/shootingstars/game/StarManager.java
@@ -1,103 +1,105 @@
-/*
- * Copyright (C) 2013 Darth Affe 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 .
- */
-package org.wyrez.shootingstars.game;
-
-import com.jme3.light.AmbientLight;
-import com.jme3.material.Material;
-import com.jme3.math.ColorRGBA;
-import com.jme3.math.Vector3f;
-import com.jme3.scene.Geometry;
-import com.jme3.scene.Node;
-import com.jme3.scene.Spatial;
-import java.util.Random;
-import org.wyrez.shootingstars.controls.StarDeathControl;
-import org.wyrez.shootingstars.controls.StarFaceControl;
-import org.wyrez.shootingstars.controls.StarPointControl;
-import org.wyrez.shootingstars.data.AudioDataManager;
-import org.wyrez.shootingstars.factories.Materials;
-import org.wyrez.shootingstars.helper.MathHelper;
-import org.wyrez.shootingstars.helper.UserDataKeys;
-import org.wyrez.shootingstars.mesh.Star;
-import org.wyrez.shootingstars.states.GameState;
-
-/**
- *
- * @author Darth Affe
- */
-public class StarManager extends Node {
-
- private static final Random random;
- private static final float MAX_STAR_SIZE = 15f;
- private static final float VAR_STAR_SIZE = 10f;
-
- static {
- random = new Random();
- }
- /**/
- private AudioDataManager audioDataManager;
- private Spatial player;
-
- public StarManager(AudioDataManager audioDataManager, Spatial player) {
- this.audioDataManager = audioDataManager;
- this.player = player;
- addLight();
- }
-
- public void update(float tpf) {
- float[] data = audioDataManager.getSpawnData();
- if (data == null) {
- return;
- }
- for (float d : data) {
- if (d > 0f) {
- spawn(calcPosition(), calcSize(d), d);
- }
- }
- }
-
- private Vector3f calcPosition() {
- float radius = (GameState.FIELD_RADIUS - MAX_STAR_SIZE) * random.nextFloat();
-
- return MathHelper.calcPointOnCircle(MathHelper.degreeToRadian(random.nextFloat() * 360f),
- radius, random.nextFloat() * GameState.FIELD_HEIGHT + GameState.FIELD_LOWER_POS);
- }
-
- private float calcSize(float data) {
- return MAX_STAR_SIZE - VAR_STAR_SIZE * data;
- }
-
- private void spawn(Vector3f location, float size, float value) {
- Geometry star = new Geometry("Star", new Star(size, size * 0.2f, 0.5f));
- star.setLocalTranslation(location);
- Material mat = Materials.STAR.create();
- mat.setColor("Color", ColorRGBA.Yellow);
- star.setMaterial(mat);
- star.setUserData(UserDataKeys.SIZE, size);
-
- star.addControl(new StarFaceControl(player));
- star.addControl(new StarDeathControl());
- star.addControl(new StarPointControl(player, value));
-
- this.attachChild(star);
- }
-
- private void addLight() {
- AmbientLight ambient = new AmbientLight();
- ambient.setColor(ColorRGBA.White);
- this.addLight(ambient);
- }
-}
+/*
+ * Copyright (C) 2013 Darth Affe 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 .
+ */
+package org.wyrez.shootingstars.game;
+
+import com.jme3.light.AmbientLight;
+import com.jme3.material.Material;
+import com.jme3.math.ColorRGBA;
+import com.jme3.math.Vector3f;
+import com.jme3.scene.Geometry;
+import com.jme3.scene.Node;
+import com.jme3.scene.Spatial;
+import java.util.Random;
+import org.wyrez.shootingstars.controls.StarDeathControl;
+import org.wyrez.shootingstars.controls.StarFaceControl;
+import org.wyrez.shootingstars.controls.StarPointControl;
+import org.wyrez.shootingstars.data.AudioDataManager;
+import org.wyrez.shootingstars.factories.Materials;
+import org.wyrez.shootingstars.helper.MathHelper;
+import org.wyrez.shootingstars.helper.UserDataKeys;
+import org.wyrez.shootingstars.mesh.Star;
+import org.wyrez.shootingstars.states.GameState;
+
+/**
+ *
+ * @author Darth Affe
+ */
+public class StarManager{
+
+ private static final Random random;
+ private static final float MAX_STAR_SIZE = 15f;
+ private static final float VAR_STAR_SIZE = 10f;
+
+ static {
+ random = new Random();
+ }
+ /**/
+ private AudioDataManager audioDataManager;
+ private Spatial player;
+ private Node starNode;
+
+ public StarManager(AudioDataManager audioDataManager, Spatial player, Node starNode) {
+ this.audioDataManager = audioDataManager;
+ this.player = player;
+ this.starNode = starNode;
+ addLight();
+ }
+
+ public void update(float tpf) {
+ float[] data = audioDataManager.getSpawnData();
+ if (data == null) {
+ return;
+ }
+ for (float d : data) {
+ if (d > 0f) {
+ spawn(calcPosition(), calcSize(d), d);
+ }
+ }
+ }
+
+ private Vector3f calcPosition() {
+ float radius = (GameState.FIELD_RADIUS - MAX_STAR_SIZE) * random.nextFloat();
+
+ return MathHelper.calcPointOnCircle(MathHelper.degreeToRadian(random.nextFloat() * 360f),
+ radius, random.nextFloat() * GameState.FIELD_HEIGHT + GameState.FIELD_LOWER_POS);
+ }
+
+ private float calcSize(float data) {
+ return MAX_STAR_SIZE - VAR_STAR_SIZE * data;
+ }
+
+ private void spawn(Vector3f location, float size, float value) {
+ Geometry star = new Geometry("Star", new Star(size, size * 0.2f, 0.5f));
+ star.setLocalTranslation(location);
+ Material mat = Materials.STAR.create();
+ mat.setColor("Color", ColorRGBA.Yellow);
+ star.setMaterial(mat);
+ star.setUserData(UserDataKeys.SIZE, size);
+
+ star.addControl(new StarFaceControl(player));
+ star.addControl(new StarDeathControl());
+ star.addControl(new StarPointControl(player, value));
+
+ starNode.attachChild(star);
+ }
+
+ private void addLight() {
+ AmbientLight ambient = new AmbientLight();
+ ambient.setColor(ColorRGBA.White);
+ starNode.addLight(ambient);
+ }
+}
diff --git a/ShootingStars/src/org/wyrez/shootingstars/gui/GameGUI.java b/ShootingStars/src/org/wyrez/shootingstars/gui/GameGUI.java
index 27dd620..a88b716 100644
--- a/ShootingStars/src/org/wyrez/shootingstars/gui/GameGUI.java
+++ b/ShootingStars/src/org/wyrez/shootingstars/gui/GameGUI.java
@@ -65,8 +65,8 @@ public class GameGUI extends Panel {
float startPointx = screenHelper.calcX(537f);
float startPointy = screenHelper.calcY(576f);
- float startPointPointsx = screenHelper.calcX(1100f);
- float startPointPointsy = screenHelper.calcY(25f);
+ float startPointPointsx = screenHelper.calcX(1000f);
+ float startPointPointsy = screenHelper.calcY(10f);
float startPointYMenu = screenHelper.calcY(200f);
@@ -133,7 +133,7 @@ public class GameGUI extends Panel {
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));
+ lblPoints.setFontSize(screenHelper.calcX(30f));
this.addChild(btnStart);
this.addChild(btnResume);
@@ -198,7 +198,7 @@ public class GameGUI extends Panel {
}
public void setPoints(String points) {
- lblPoints.setText(points);
+ lblPoints.setText("Points: " + points);
}
public void setPlayer(Spatial player) {
diff --git a/ShootingStars/src/org/wyrez/shootingstars/gui/OptionsGUI.java b/ShootingStars/src/org/wyrez/shootingstars/gui/OptionsGUI.java
index d3a1d93..daa9b51 100644
--- a/ShootingStars/src/org/wyrez/shootingstars/gui/OptionsGUI.java
+++ b/ShootingStars/src/org/wyrez/shootingstars/gui/OptionsGUI.java
@@ -51,12 +51,12 @@ public class OptionsGUI extends Panel implements Gui {
private ComboBox cboFrequency;
private CheckBox chkFullscreen;
private CheckBox chkVSync;
- private CheckBox chkPostProcessing;
+ private CheckBox chkShowWeapon;
private Slider sldParticleDensity;
//Audio Controls
private Slider sldMasterVolume;
- private Slider sldFXVolume;
- private Slider sldSoundVolume;
+ private Slider sldMenuVolume;
+ private Slider sldMusicVolume;
public OptionsGUI(Screen screen, OptionsListener listener, OptionSettings settings, ScreenHelper screenHelper) {
super(screen, new Vector2f(0f, 0f), new Vector2f(1280f, 720f)); //create for full hd
@@ -121,7 +121,7 @@ public class OptionsGUI extends Panel implements Gui {
float marginLeftControls = screenHelper.calcX(115.8f);
Label lblPlayerName = new Label(screen, new Vector2f(startPointx, startPointy), new Vector2f(screenHelper.calcX(120f), screenHelper.calcY(40f)));
- lblPlayerName.setText("PlayerName");
+ lblPlayerName.setText("Player Name");
lblPlayerName.setFontSize(labelFontSize);
txtPlayerName = new TextField(screen, new Vector2f(startPointx + marginLeftControls, startPointy + screenHelper.calcY(7f)), new Vector2f(screenHelper.calcX(200f), screenHelper.calcY(30f)));
@@ -161,10 +161,10 @@ public class OptionsGUI extends Panel implements Gui {
chkVSync = new CheckBox(screen, new Vector2f(startPointx + marginLeftControls + screenHelper.calcX(400f), startPointy + screenHelper.calcY(12f)), new Vector2f(checkBoxWitdh, checkBoxHeight));
Label lblPostProcessing = new Label(screen, "lblPostProcessing", new Vector2f(startPointx + screenHelper.calcX(800f), startPointy), new Vector2f(labelWitdh, labelHeight));
- lblPostProcessing.setText("PostProcessing");
+ lblPostProcessing.setText("Show Weapon");
lblPostProcessing.setFontSize(labelFontSize);
- chkPostProcessing = new CheckBox(screen, new Vector2f(startPointx + marginLeftControls + screenHelper.calcX(800f), startPointy + screenHelper.calcY(12f)), new Vector2f(checkBoxWitdh, checkBoxHeight));
+ chkShowWeapon = new CheckBox(screen, new Vector2f(startPointx + marginLeftControls + screenHelper.calcX(800f), startPointy + screenHelper.calcY(12f)), new Vector2f(checkBoxWitdh, checkBoxHeight));
Label lblResolution = new Label(screen, "lblResolution", new Vector2f(startPointx, startPointy + screenHelper.calcY(50f)), new Vector2f(labelWitdh, labelHeight));
lblResolution.setText("Resolution");
@@ -195,7 +195,7 @@ public class OptionsGUI extends Panel implements Gui {
}
Label lblParticleDensity = new Label(screen, "lblParticleDensity", new Vector2f(startPointx + screenHelper.calcX(800f), startPointy +screenHelper.calcY(50f)), new Vector2f(labelWitdh, labelHeight));
- lblParticleDensity.setText("ParticleDensity");
+ lblParticleDensity.setText("Particle Density");
lblParticleDensity.setFontSize(labelFontSize);
sldParticleDensity = new Slider(screen, new Vector2f(startPointx + marginLeftControls + screenHelper.calcX(800f), startPointy + screenHelper.calcY(57f)), new Vector2f(sliderWitdh, sliderHeight), Slider.Orientation.HORIZONTAL, false) {
@@ -215,7 +215,7 @@ public class OptionsGUI extends Panel implements Gui {
this.addChild(lblResolution);
this.addChild(cboResolution);
this.addChild(lblPostProcessing);
- this.addChild(chkPostProcessing);
+ this.addChild(chkShowWeapon);
this.addChild(lblParticleDensity);
this.addChild(sldParticleDensity);
}
@@ -232,7 +232,7 @@ public class OptionsGUI extends Panel implements Gui {
float sliderHeight = screenHelper.calcY(30f);
Label lblMasterVolume = new Label(screen, "lblMasterVolume", new Vector2f(startPointx, startPointy), new Vector2f(labelWitdh, labelHeight));
- lblMasterVolume.setText("MasterVolume");
+ lblMasterVolume.setText("Master Volume");
lblMasterVolume.setFontSize(labelFontSize);
sldMasterVolume = new Slider(screen, new Vector2f(startPointx + marginLeftControls, startPointy + screenHelper.calcY(7f)), new Vector2f(sliderWitdh, sliderHeight), Slider.Orientation.HORIZONTAL, false) {
@@ -243,33 +243,33 @@ public class OptionsGUI extends Panel implements Gui {
sldMasterVolume.setStepIntegerRange(0, 100, 1);
Label lblFXVolume = new Label(screen, "lblFXVolume", new Vector2f(startPointx + screenHelper.calcX(400f), startPointy), new Vector2f(labelWitdh, labelHeight));
- lblFXVolume.setText("FXVolume");
+ lblFXVolume.setText("Menu Volume");
lblFXVolume.setFontSize(labelFontSize);
- sldFXVolume = new Slider(screen, new Vector2f(startPointx + marginLeftControls + screenHelper.calcX(400f), startPointy + screenHelper.calcY(7f)), new Vector2f(sliderWitdh, sliderHeight), Slider.Orientation.HORIZONTAL, false) {
+ sldMenuVolume = new Slider(screen, new Vector2f(startPointx + marginLeftControls + screenHelper.calcX(400f), startPointy + screenHelper.calcY(7f)), new Vector2f(sliderWitdh, sliderHeight), Slider.Orientation.HORIZONTAL, false) {
@Override
public void onChange(int selectedIndex, Object value) {
}
};
- sldFXVolume.setStepIntegerRange(0, 100, 1);
+ sldMenuVolume.setStepIntegerRange(0, 100, 1);
Label lblSoundVolume = new Label(screen, "lblSoundVolume", new Vector2f(startPointx + screenHelper.calcX(800f), startPointy + screenHelper.calcY(0f)), new Vector2f(labelWitdh, labelHeight));
- lblSoundVolume.setText("SoundVolume");
+ lblSoundVolume.setText("Music Volume");
lblSoundVolume.setFontSize(labelFontSize);
- sldSoundVolume = new Slider(screen, new Vector2f(startPointx + marginLeftControls + screenHelper.calcX(800f), startPointy + screenHelper.calcY(7f)), new Vector2f(sliderWitdh, sliderHeight), Slider.Orientation.HORIZONTAL, false) {
+ sldMusicVolume = new Slider(screen, new Vector2f(startPointx + marginLeftControls + screenHelper.calcX(800f), startPointy + screenHelper.calcY(7f)), new Vector2f(sliderWitdh, sliderHeight), Slider.Orientation.HORIZONTAL, false) {
@Override
public void onChange(int selectedIndex, Object value) {
}
};
- sldSoundVolume.setStepIntegerRange(0, 100, 1);
+ sldMusicVolume.setStepIntegerRange(0, 100, 1);
this.addChild(lblMasterVolume);
this.addChild(sldMasterVolume);
this.addChild(lblFXVolume);
- this.addChild(sldFXVolume);
+ this.addChild(sldMenuVolume);
this.addChild(lblSoundVolume);
- this.addChild(sldSoundVolume);
+ this.addChild(sldMusicVolume);
}
private void readControlValues() {
@@ -283,13 +283,13 @@ public class OptionsGUI extends Panel implements Gui {
setComboBoxValue(cboFrequency, String.valueOf(settings.getFrequency()));
chkFullscreen.setIsChecked(settings.isFullscreenEnabled());
chkVSync.setIsChecked(settings.isVSyncEnabled());
- chkPostProcessing.setIsChecked(settings.isPostprocessingEnabled());
+ chkShowWeapon.setIsChecked(settings.isShowWeaponEnabled());
sldParticleDensity.setSelectedIndex(settings.getParticleDensity());
//Audio
sldMasterVolume.setSelectedIndex(settings.getMasterVolume());
- sldFXVolume.setSelectedIndex(settings.getFXVolume());
- sldSoundVolume.setSelectedIndex(settings.getSoundVolume());
+ sldMenuVolume.setSelectedIndex(settings.getMenuVolume());
+ sldMusicVolume.setSelectedIndex(settings.getMusicVolume());
}
private void setComboBoxValue(ComboBox comboBox, String value) {
@@ -311,13 +311,13 @@ public class OptionsGUI extends Panel implements Gui {
settings.setFrequency(Integer.parseInt(cboFrequency.getSelectedListItem().getValue().toString()));
settings.setFullscreen(chkFullscreen.getIsChecked());
settings.setVSync(chkVSync.getIsChecked());
- settings.setPostProcessing(chkPostProcessing.getIsChecked());
+ settings.setShowWeapon(chkShowWeapon.getIsChecked());
settings.setParticleDensity(sldParticleDensity.getSelectedIndex());
//Audio
settings.setMasterVolume(sldMasterVolume.getSelectedIndex());
- settings.setFXVolume(sldFXVolume.getSelectedIndex());
- settings.setSoundVolume(sldSoundVolume.getSelectedIndex());
+ settings.setMenuVolume(sldMenuVolume.getSelectedIndex());
+ settings.setMusicVolume(sldMusicVolume.getSelectedIndex());
settings.save();
}
diff --git a/ShootingStars/src/org/wyrez/shootingstars/states/GameState.java b/ShootingStars/src/org/wyrez/shootingstars/states/GameState.java
index 44dffdc..04d1057 100644
--- a/ShootingStars/src/org/wyrez/shootingstars/states/GameState.java
+++ b/ShootingStars/src/org/wyrez/shootingstars/states/GameState.java
@@ -70,11 +70,13 @@ public class GameState extends AbstractAppState implements GameListener, ActionL
private Cinema cinema;
private Ground ground;
private Node player;
+ private Node starNode;
+ private OptionSettings optionSettings;
private boolean isRunning = false;
private boolean isFinished = false;
public GameState(Node rootNode, Screen screen, StateManager stateManager,
- AssetManager assetManager, ViewPort viewPort, OptionSettings options,
+ AssetManager assetManager, ViewPort viewPort, OptionSettings optionSettings,
InputManager inputManager, Camera camera, AudioDataManager audioDataManager,
GameSettings settings, ScreenHelper screenHelper) {
@@ -88,12 +90,13 @@ public class GameState extends AbstractAppState implements GameListener, ActionL
this.audioDataManager = audioDataManager;
this.assetManager = assetManager;
this.viewPort = viewPort;
+ this.optionSettings = optionSettings;
mediaPlayerFactory = new MediaPlayerFactory("--no-video-title-show", "--quiet");
this.settings = settings;
- Particles.setParticleDensity(options.getParticleDensity());
+ Particles.setParticleDensity(optionSettings.getParticleDensity());
}
public void loadGround() {
@@ -122,13 +125,14 @@ public class GameState extends AbstractAppState implements GameListener, ActionL
}
public void loadPlayer() {
+ starNode = new Node();
player = new Player(rootNode, stateManager, assetManager, viewPort, gui,
- inputManager, camera, audioDataManager);
+ inputManager, camera, audioDataManager, starNode);
gui.setPlayer(player);
//Out of possition, but it needs an initialized player...
- this.starManager = new StarManager(audioDataManager, player);
+ this.starManager = new StarManager(audioDataManager, player, starNode);
}
private void setRunning(boolean running) {
@@ -139,6 +143,8 @@ public class GameState extends AbstractAppState implements GameListener, ActionL
public void start() {
gui.setStart();
inputManager.setCursorVisible(false);
+ mediaPlayer.setVolume(optionSettings.getMusicVolume() *
+ Math.round((float)optionSettings.getMasterVolume() / 100f));
mediaPlayer.play();
setRunning(true);
}
@@ -148,7 +154,7 @@ public class GameState extends AbstractAppState implements GameListener, ActionL
rootNode.attachChild(cinema);
rootNode.attachChild(ground);
rootNode.attachChild(player);
- rootNode.attachChild(starManager);
+ rootNode.attachChild(starNode);
gui.setWait();
gui.attach();
}
@@ -156,7 +162,7 @@ public class GameState extends AbstractAppState implements GameListener, ActionL
@Override
public void stateDetached(AppStateManager stateManager) {
gui.detach();
- rootNode.detachChild(starManager);
+ rootNode.detachChild(starNode);
rootNode.detachChild(player);
rootNode.detachChild(ground);
rootNode.detachChild(cinema);
diff --git a/ShootingStars/src/org/wyrez/shootingstars/states/util/OptionSettings.java b/ShootingStars/src/org/wyrez/shootingstars/states/util/OptionSettings.java
index 56c8608..2291f51 100644
--- a/ShootingStars/src/org/wyrez/shootingstars/states/util/OptionSettings.java
+++ b/ShootingStars/src/org/wyrez/shootingstars/states/util/OptionSettings.java
@@ -59,12 +59,13 @@ public class OptionSettings {
settings.setTitle("Shooting Stars");
settings.setSettingsDialogImage("");
setMasterVolume(100);
- setFXVolume(100);
+ setMenuVolume(100);
setSoundVolume(100);
setUsername("Player");
setPostProcessing(true);
setParticleDensity(3);
setDepthBits(24);
+ setShowWeapon(true);
}
}
@@ -88,8 +89,8 @@ public class OptionSettings {
settings.putInteger("MusicVolume", volume);
}
- public void setFXVolume(int volume) {
- settings.putInteger("FXVolume", volume);
+ public void setMenuVolume(int volume) {
+ settings.putInteger("MenuVolume", volume);
}
public void setSoundVolume(int volume) {
@@ -99,6 +100,10 @@ public class OptionSettings {
public void setPostProcessing(boolean enabled) {
settings.putBoolean("PostProcessing", enabled);
}
+
+ public void setShowWeapon(boolean enabled) {
+ settings.putBoolean("ShowWeapon", enabled);
+ }
public void setFullscreen(boolean enabled) {
settings.setFullscreen(enabled);
@@ -144,8 +149,8 @@ public class OptionSettings {
return settings.getInteger("MusicVolume");
}
- public int getFXVolume() {
- return settings.getInteger("FXVolume");
+ public int getMenuVolume() {
+ return settings.getInteger("MenuVolume");
}
public int getSoundVolume() {
@@ -155,6 +160,10 @@ public class OptionSettings {
public boolean isPostprocessingEnabled() {
return settings.getBoolean("PostProcessing");
}
+
+ public boolean isShowWeaponEnabled() {
+ return settings.getBoolean("ShowWeapon");
+ }
public boolean isFullscreenEnabled() {
return settings.isFullscreen();