updated sound fx, added notice window
This commit is contained in:
parent
f390f4f6dd
commit
819fb35680
Binary file not shown.
Binary file not shown.
BIN
android/assets/sounds/pop_close.ogg
Executable file
BIN
android/assets/sounds/pop_close.ogg
Executable file
Binary file not shown.
BIN
android/assets/sounds/pop_open.ogg
Executable file
BIN
android/assets/sounds/pop_open.ogg
Executable file
Binary file not shown.
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
31
core/src/zero1hd/polyjet/ui/windows/NoticeWindow.java
Executable file
31
core/src/zero1hd/polyjet/ui/windows/NoticeWindow.java
Executable 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);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user