added laser shoot sound
This commit is contained in:
@@ -130,6 +130,8 @@ public class Polyjet extends Game {
|
||||
assetManager.load("flake.png", Texture.class);
|
||||
assetManager.load("star_bg.png", Texture.class);
|
||||
assetManager.load("void_circle.png", Texture.class);
|
||||
assetManager.load("laser.ogg", Sound.class);
|
||||
assetManager.load("explosion.ogg", Sound.class);
|
||||
}
|
||||
public void generateFonts() {
|
||||
initComplete = true;
|
||||
|
@@ -3,7 +3,9 @@ package zero1hd.polyjet.entity;
|
||||
import java.util.Arrays;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.Preferences;
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
import com.badlogic.gdx.audio.Sound;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.scenes.scene2d.Stage;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
@@ -19,6 +21,7 @@ import zero1hd.polyjet.entity.enemies.VoidCircle;
|
||||
|
||||
public class EntityController {
|
||||
AssetManager assets;
|
||||
Preferences prefs;
|
||||
|
||||
public Array<Entity> activeAllies;
|
||||
public Array<Entity> activeEnemies;
|
||||
@@ -33,10 +36,11 @@ public class EntityController {
|
||||
//Ally pool declaration;
|
||||
private Pool<Laser> laserPool;
|
||||
|
||||
public EntityController(AssetManager assetManager) {
|
||||
public EntityController(AssetManager assetManager, Preferences preferences) {
|
||||
activeAllies = new Array<Entity>();
|
||||
activeEnemies = new Array<Entity>();
|
||||
this.assets = assetManager;
|
||||
this.prefs = preferences;
|
||||
|
||||
//Enemy pool initialization;
|
||||
voidCirclePool = new Pool<VoidCircle>() {
|
||||
@@ -45,24 +49,28 @@ public class EntityController {
|
||||
return new VoidCircle(assets.get("void_circle.png", Texture.class));
|
||||
}
|
||||
};
|
||||
|
||||
pelletPool = new Pool<Pellet>() {
|
||||
@Override
|
||||
protected Pellet newObject() {
|
||||
return new Pellet(assets.get("pellet.png", Texture.class));
|
||||
}
|
||||
};
|
||||
|
||||
shardPool = new Pool<Shard>() {
|
||||
@Override
|
||||
protected Shard newObject() {
|
||||
return new Shard(assets.get("shard.png", Texture.class));
|
||||
}
|
||||
};
|
||||
|
||||
barPool = new Pool<Bar>() {
|
||||
@Override
|
||||
protected Bar newObject() {
|
||||
return new Bar(assets.get("bar.png", Texture.class));
|
||||
}
|
||||
};
|
||||
|
||||
flakePool = new Pool<Flake>() {
|
||||
@Override
|
||||
protected Flake newObject() {
|
||||
@@ -74,10 +82,9 @@ public class EntityController {
|
||||
laserPool = new Pool<Laser>() {
|
||||
@Override
|
||||
protected Laser newObject() {
|
||||
return new Laser(assets.get("laser.png", Texture.class));
|
||||
return new Laser(assets.get("laser.png", Texture.class), assets.get("laser.ogg", Sound.class), prefs);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
public Entity retrieveEntity(Entities entity) {
|
||||
|
@@ -1,5 +1,7 @@
|
||||
package zero1hd.polyjet.entity.ally;
|
||||
|
||||
import com.badlogic.gdx.Preferences;
|
||||
import com.badlogic.gdx.audio.Sound;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.graphics.g2d.Batch;
|
||||
import com.badlogic.gdx.math.Rectangle;
|
||||
@@ -15,9 +17,13 @@ public class Laser extends Actor implements Entity, Poolable {
|
||||
private float rate;
|
||||
boolean dead;
|
||||
Texture laserTexture;
|
||||
Sound sfx;
|
||||
Preferences prefs;
|
||||
|
||||
public Laser(Texture laserTexture) {
|
||||
public Laser(Texture laserTexture, Sound sfx, Preferences prefs) {
|
||||
this.laserTexture = laserTexture;
|
||||
this.sfx = sfx;
|
||||
this.prefs = prefs;
|
||||
setSize(0.25f, 2f);
|
||||
}
|
||||
|
||||
@@ -27,6 +33,7 @@ public class Laser extends Actor implements Entity, Poolable {
|
||||
this.rate = rate;
|
||||
hitBox = new Rectangle();
|
||||
hitBox.setSize(getWidth(), getHeight());
|
||||
sfx.play(prefs.getFloat("fx vol")/100f);
|
||||
toBack();
|
||||
}
|
||||
|
||||
|
@@ -126,17 +126,16 @@ public class MusicSelectionPage extends Page {
|
||||
int prog = (int) (100f*music/(musicFiles.length-1f));
|
||||
loadingWindow.setProgress(prog);
|
||||
}
|
||||
|
||||
loadingWindow.remove();
|
||||
|
||||
} else {
|
||||
NoticeWindow notice = new NoticeWindow(core.getDefaultSkin(), "default", "No song's found in:\n\"" + core.getPrefs().getString("music dir") + "\"\nTo change the search directory, go to game options.");
|
||||
NoticeWindow notice = new NoticeWindow(core.getDefaultSkin(), "default", "No song's found in:\n\"" + core.getPrefs().getString("music dir") + "\"\nTo change the search directory, go to game options.", core.getPrefs().getLong("fx vol"), core.getAssetManager());
|
||||
notice.setSize(0.6f*getWidth(), 0.6f*getHeight());
|
||||
notice.setPosition((getWidth()-notice.getWidth())/2f, (getHeight()-notice.getHeight())/2f);
|
||||
notice.setModal(true);
|
||||
notice.setMovable(false);
|
||||
loadingWindow.remove();
|
||||
addActor(notice);
|
||||
notice.playOpenSound();
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
|
@@ -3,12 +3,9 @@ package zero1hd.polyjet.ui.stages;
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.Preferences;
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
import com.badlogic.gdx.graphics.Camera;
|
||||
import com.badlogic.gdx.graphics.GL20;
|
||||
import com.badlogic.gdx.graphics.OrthographicCamera;
|
||||
import com.badlogic.gdx.graphics.Pixmap.Format;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.graphics.g2d.Batch;
|
||||
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||
import com.badlogic.gdx.graphics.glutils.FrameBuffer;
|
||||
import com.badlogic.gdx.graphics.glutils.ShaderProgram;
|
||||
@@ -39,10 +36,11 @@ public class GamePlayArea extends Stage {
|
||||
private int score;
|
||||
|
||||
private ShaderProgram glowShader;
|
||||
private ShaderProgram bgShader;
|
||||
private FrameBuffer blurTarget;
|
||||
TextureRegion fboRegion;
|
||||
private int fboSize;
|
||||
|
||||
private ShaderProgram bgShader;
|
||||
private Texture background;
|
||||
|
||||
private float time;
|
||||
@@ -53,7 +51,7 @@ public class GamePlayArea extends Stage {
|
||||
background = assetManager.get("star_bg.png");
|
||||
|
||||
polyjet = new PolyJetEntity(assetManager, 25f, 25f, "standard");
|
||||
ec = new EntityController(assetManager);
|
||||
ec = new EntityController(assetManager, prefs);
|
||||
collisionDetector = new CollisionDetector(ec.activeAllies, ec.activeEnemies);
|
||||
ec.activeAllies.add(polyjet);
|
||||
addActor(polyjet);
|
||||
@@ -123,6 +121,8 @@ public class GamePlayArea extends Stage {
|
||||
getBatch().draw(background, 0f, 0f, Polyjet.GAME_AREA_WIDTH, Polyjet.GAME_AREA_HEIGHT);
|
||||
getBatch().end();
|
||||
|
||||
getBatch().setShader(null);
|
||||
|
||||
if (glowShader != null) {
|
||||
blurTarget.begin();
|
||||
|
||||
@@ -130,7 +130,6 @@ public class GamePlayArea extends Stage {
|
||||
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
|
||||
getBatch().setBlendFunction(-1, -1);
|
||||
Gdx.gl20.glBlendFuncSeparate(GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_ALPHA,GL20.GL_ONE, GL20.GL_DST_ALPHA);
|
||||
getBatch().setShader(null);
|
||||
super.draw();
|
||||
blurTarget.end(getViewport().getScreenX(), getViewport().getScreenY(), getViewport().getScreenWidth(), getViewport().getScreenHeight());
|
||||
getBatch().setBlendFunction(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
|
||||
@@ -144,7 +143,6 @@ public class GamePlayArea extends Stage {
|
||||
getBatch().end();
|
||||
|
||||
} else {
|
||||
getBatch().setShader(null);
|
||||
super.draw();
|
||||
}
|
||||
}
|
||||
@@ -265,6 +263,13 @@ public class GamePlayArea extends Stage {
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
if (glowShader != null) {
|
||||
blurTarget.dispose();
|
||||
glowShader.dispose();
|
||||
}
|
||||
if (bgShader != null) {
|
||||
bgShader.dispose();
|
||||
}
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
|
@@ -73,6 +73,7 @@ public class LoadingWindow extends Window implements Disposable {
|
||||
closeSound.play(vol/100f);
|
||||
return super.remove();
|
||||
}
|
||||
|
||||
public void setProgress(float progress) {
|
||||
status.setText(String.valueOf((int) progress) + '%');
|
||||
}
|
||||
|
@@ -1,5 +1,7 @@
|
||||
package zero1hd.polyjet.ui.windows;
|
||||
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
import com.badlogic.gdx.audio.Sound;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Label;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||
@@ -10,20 +12,32 @@ import com.badlogic.gdx.utils.Align;
|
||||
public class NoticeWindow extends Window {
|
||||
private Label noticeText;
|
||||
private Skin skin;
|
||||
public NoticeWindow(Skin skin, String styleName, String text) {
|
||||
|
||||
private Sound closeSound;
|
||||
private Sound openSound;
|
||||
private float vol;
|
||||
public NoticeWindow(Skin skin, String styleName, String text, float vol, AssetManager assets) {
|
||||
super("Notice", skin, "tinted");
|
||||
this.skin = skin;
|
||||
|
||||
this.openSound = assets.get("pop_open.ogg", Sound.class);
|
||||
this.closeSound = assets.get("pop_close.ogg", Sound.class);
|
||||
this.vol = vol;
|
||||
|
||||
noticeText = new Label(text, skin, "sub-font", skin.getColor("default"));
|
||||
noticeText.setWrap(true);
|
||||
noticeText.setAlignment(Align.center);
|
||||
add(noticeText).expandX().fill().center().padLeft(20f).padRight(20f);
|
||||
}
|
||||
|
||||
public NoticeWindow(Skin skin, String styleName, String title, String text) {
|
||||
public NoticeWindow(Skin skin, String styleName, String title, String text, float vol, AssetManager assets) {
|
||||
super(title, skin, styleName);
|
||||
this.skin = skin;
|
||||
|
||||
this.openSound = assets.get("pop_open.ogg", Sound.class);
|
||||
this.closeSound = assets.get("pop_close.ogg", Sound.class);
|
||||
this.vol = vol;
|
||||
|
||||
noticeText = new Label(text, skin, "sub-font", skin.getColor("default"));
|
||||
noticeText.setWrap(true);
|
||||
noticeText.setAlignment(Align.center);
|
||||
@@ -36,4 +50,14 @@ public class NoticeWindow extends Window {
|
||||
add(button).align(alignment);
|
||||
}
|
||||
|
||||
public void playOpenSound() {
|
||||
openSound.play(vol/100f);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean remove() {
|
||||
closeSound.play(vol/100f);
|
||||
return super.remove();
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user