added laser shoot sound

This commit is contained in:
Harrison Deng 2017-07-21 21:51:00 -05:00
parent 991377e55f
commit 647b3b7d14
33 changed files with 61 additions and 16 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 B

After

Width:  |  Height:  |  Size: 134 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 B

After

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 396 B

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 B

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 B

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 432 B

After

Width:  |  Height:  |  Size: 566 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 B

After

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 B

After

Width:  |  Height:  |  Size: 112 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 419 B

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 B

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 B

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 522 B

After

Width:  |  Height:  |  Size: 714 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 B

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 289 B

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 683 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 B

After

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 343 B

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 846 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 B

After

Width:  |  Height:  |  Size: 380 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 523 B

After

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

After

Width:  |  Height:  |  Size: 101 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 B

After

Width:  |  Height:  |  Size: 90 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 263 B

After

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

BIN
android/assets/sounds/laser.ogg Executable file

Binary file not shown.

View File

@ -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;

View File

@ -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) {

View File

@ -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();
}

View File

@ -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();

View File

@ -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();
}

View File

@ -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) + '%');
}

View File

@ -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();
}
}