updated sound fx, added notice window

This commit is contained in:
Harrison Deng 2017-05-09 21:02:29 -05:00
parent f390f4f6dd
commit 819fb35680
10 changed files with 81 additions and 22 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -117,8 +117,8 @@ public class Polyjet extends Game {
assetManager.load("cybercircle1.png", Texture.class);
assetManager.load("defaultCover.png", Texture.class);
assetManager.load("teleport-cloak.p", ParticleEffect.class);
assetManager.load("sounds/SFX_open.ogg", Sound.class);
assetManager.load("sounds/SFX_close.ogg", Sound.class);
assetManager.load("sounds/pop_open.ogg", Sound.class);
assetManager.load("sounds/pop_close.ogg", Sound.class);
}
public void generateFonts() {
initComplete = true;

View File

@ -56,6 +56,7 @@ public class MusicSelectable extends Button implements Disposable {
if (musicFile.extension().toLowerCase().equals("mp3")) {
MP3File mp3File;
try {
mp3File = new MP3File(musicFile.file());
durationInSeconds = mp3File.getAudioHeader().getTrackLength();
@ -71,7 +72,6 @@ public class MusicSelectable extends Button implements Disposable {
e.printStackTrace();
}
} else {
wavinfo = new WavInfo(musicFile.file());
durationInSeconds = wavinfo.getDurationInSeconds();

View File

@ -41,6 +41,7 @@ public class ScrollText extends Widget {
fontHeight = gLayout.height;
fontWidth = gLayout.width;
addListener(new ClickListener() {
@Override
public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) {
@ -57,8 +58,6 @@ public class ScrollText extends Widget {
@Override
public void clicked(InputEvent event, float x, float y) {
}
});
}
@ -74,12 +73,15 @@ public class ScrollText extends Widget {
@Override
public void layout() {
setHeight(fontHeight+4);
clipBounds.set(getParent().getX()+getX()-scrollCoords.getVisualScrollX(), getParent().getY()+getY(), getWidth(), getHeight());
clipBounds.set(getParent().getX()+getX()-scrollCoords.getVisualScrollX(), getParent().getY()+getY() - getHeight()*0.5f, getWidth(), getHeight()*1.5f);
super.layout();
}
@Override
public void act(float delta) {
clipBounds.setX(getParent().getX()+getX()+scrollCoords.getWidget().getX());
clipBounds.setY(getParent().getY()+getY()+scrollCoords.getWidget().getY());
if (fontWidth > clipBounds.getWidth()) {
if (scrollOnHover) {
if ((int) textOffset != 0 || currentlyHovering) {
@ -102,7 +104,6 @@ public class ScrollText extends Widget {
@Override
public void draw(Batch batch, float parentAlpha) {
validate();
clipBounds.setX(getParent().getX()+getX()+scrollCoords.getWidget().getX());
getStage().calculateScissors(clipBounds, scissors);
batch.flush();

View File

@ -2,6 +2,8 @@ package zero1hd.polyjet.ui.pages;
import java.io.File;
import java.io.FilenameFilter;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Preferences;
@ -17,6 +19,7 @@ import zero1hd.polyjet.Polyjet;
import zero1hd.polyjet.screens.MainMenu;
import zero1hd.polyjet.ui.builders.MusicSelectable;
import zero1hd.polyjet.ui.windows.LoadingWindow;
import zero1hd.polyjet.ui.windows.NoticeWindow;
public class MusicSelectionPage extends Page {
private volatile Table musicChoices;
@ -25,6 +28,8 @@ public class MusicSelectionPage extends Page {
private volatile ScrollPane musicChoiceScroller;
private volatile LoadingWindow loadingWindow;
protected volatile boolean cancel;
private TextButton back;
public MusicSelectionPage(final Polyjet core, final MainMenu mainMenu) {
super("Select music", core.defaultSkin);
@ -33,12 +38,13 @@ public class MusicSelectionPage extends Page {
musicFileAnnotation = Gdx.app.getPreferences("music_file_annotation");
TextButton back = new TextButton("Back", core.defaultSkin);
back = new TextButton("Back", core.defaultSkin);
back.setPosition(getWidth()-back.getWidth()-15f, getHeight()-back.getHeight()-15f);
back.addListener(new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
core.setScreen(mainMenu);
cancel = true;
}
});
addActor(back);
@ -54,12 +60,13 @@ public class MusicSelectionPage extends Page {
musicChoices.defaults().pad(10f);
musicChoiceScroller = new ScrollPane(musicChoices);
musicChoiceScroller.setScrollingDisabled(false, true);
musicChoiceScroller.setSize(getWidth(), getHeight()*0.85f);
musicChoiceScroller.setSize(getWidth(), getHeight()-(getHeight()-back.getY()));
musicChoiceScroller.debug();
addActor(musicChoiceScroller);
loadingWindow.toFront();
back.toFront();
}
@Override
@ -73,6 +80,8 @@ public class MusicSelectionPage extends Page {
@Override
public void run() {
Logger.getLogger("org.jaudiotagger").setLevel(Level.SEVERE);
FileHandle[] musicFiles = new FileHandle(core.prefs.getString("music dir")).list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
@ -83,18 +92,19 @@ public class MusicSelectionPage extends Page {
}
});
if (musicFiles.length != 0) {
for (int music = 0; music < musicFiles.length; music++) {
if (musicFiles.length > 0) {
for (int music = 0; music < musicFiles.length && !cancel; music++) {
final MusicSelectable selectable = new MusicSelectable(musicFiles[music], musicFileAnnotation, core.defaultSkin, core.assetManager.get("defaultCover.png", Texture.class));
Gdx.app.postRunnable(new Runnable() {
@Override
public void run() {
Gdx.app.debug("Music Search Thread", "Finished loading: " + selectable.getName());
musicChoices.add(selectable).prefSize(0.3f*getWidth(), 0.8f*getHeight());
selectable.addInfoToPanel(musicChoiceScroller, 0.28f*getWidth());
musicChoices.add(selectable).prefSize(panelWidthCalc(getWidth()), musicChoiceScroller.getHeight());
selectable.addInfoToPanel(musicChoiceScroller, panelWidthCalc(getWidth()) - 20f);
}
});
System.out.println(music);
Gdx.app.debug("Music Search Thread", "Completed: " + music);
int prog = (int) (100f*music/(musicFiles.length-1f));
loadingWindow.setProgress(prog);
}
@ -102,10 +112,20 @@ public class MusicSelectionPage extends Page {
loadingWindow.remove();
} else {
NoticeWindow notice = new NoticeWindow(core.defaultSkin, "default", "No song's found in:\n\"" + core.prefs.getString("music dir") + "\"\nTo change the search directory, go to game options.");
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);
back.toFront();
}
}
}).start();
}
public float panelWidthCalc(float origWidth) {
return (float) (Math.sqrt(getWidth()*35f)+80f);
}
}

View File

@ -7,8 +7,9 @@ import com.badlogic.gdx.scenes.scene2d.ui.Image;
import com.badlogic.gdx.scenes.scene2d.ui.Label;
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
import com.badlogic.gdx.scenes.scene2d.ui.Window;
import com.badlogic.gdx.utils.Disposable;
public class LoadingWindow extends Window {
public class LoadingWindow extends Window implements Disposable {
private Label status;
private Sound closeSound;
@ -17,8 +18,8 @@ public class LoadingWindow extends Window {
public LoadingWindow(Skin skin, boolean progress, AssetManager assets, float vol) {
super("loading...", skin);
this.openSound = assets.get("sounds/SFX_open.ogg", Sound.class);
this.closeSound = assets.get("sounds/SFX_close.ogg", Sound.class);
this.openSound = assets.get("sounds/pop_open.ogg", Sound.class);
this.closeSound = assets.get("sounds/pop_close.ogg", Sound.class);
this.vol = vol;
Image loading = new Image(skin, "loading");
loading.addAction(Actions.forever(Actions.rotateBy(-360f, 2f)));
@ -42,8 +43,8 @@ public class LoadingWindow extends Window {
public LoadingWindow(Skin skin, String styleName, boolean progress, AssetManager assets, float vol) {
super("loading...", skin, styleName);
this.openSound = assets.get("sounds/SFX_open.ogg", Sound.class);
this.closeSound = assets.get("sounds/SFX_close.ogg", Sound.class);
this.openSound = assets.get("sounds/pop_open.ogg", Sound.class);
this.closeSound = assets.get("sounds/pop_close.ogg", Sound.class);
this.vol = vol;
Image loading = new Image(skin, "loading");
loading.addAction(Actions.forever(Actions.rotateBy(-360f, 2f)));
@ -78,4 +79,10 @@ public class LoadingWindow extends Window {
public void setProgress(float progress) {
status.setText(String.valueOf((int) progress) + '%');
}
@Override
public void dispose() {
openSound.dispose();
closeSound.dispose();
}
}

View File

@ -0,0 +1,31 @@
package zero1hd.polyjet.ui.windows;
import com.badlogic.gdx.scenes.scene2d.ui.Label;
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
import com.badlogic.gdx.scenes.scene2d.ui.Window;
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
import com.badlogic.gdx.utils.Align;
public class NoticeWindow extends Window {
private Label noticeText;
private TextButton finalButton;
private Skin skin;
public NoticeWindow(Skin skin, String styleName, String text) {
super("Notice", skin);
this.skin = skin;
debug();
noticeText = new Label(text, skin);
noticeText.setWrap(true);
noticeText.setAlignment(Align.center);
add(noticeText).expandX().fill().center().padLeft(20f).padRight(20f);
}
public void setupButton(String text, ChangeListener changeListener) {
finalButton = new TextButton(text, skin, "sub-font");
finalButton.addListener(changeListener);
add(finalButton);
}
}