List of usage examples for com.badlogic.gdx.math Interpolation sine
Interpolation sine
To view the source code for com.badlogic.gdx.math Interpolation sine.
Click Source Link
From source file:com.ixeption.libgdx.transitions.FadingGame.java
License:Apache License
@Override public void create() { this.currentScreenFBO = new FrameBuffer(Pixmap.Format.RGBA8888, Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), false); this.nextScreenFBO = new FrameBuffer(Pixmap.Format.RGBA8888, Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), false); batch = new SpriteBatch(); colorFadeInTransition = new ColorFadeTransition(Color.BLACK, Interpolation.sine); }
From source file:com.vlaaad.dice.game.world.view.visualizers.BeamVisualizer.java
License:Open Source License
@Override public IFuture<Void> visualize(ITargetOwner result) { final Future<Void> future = new Future<Void>(); SoundManager.instance.playSoundIfExists(soundName); Image image = new Image(Config.skin, "effect-luck-image"); image.setColor(color);//from www . jav a 2 s. c om image.setScale(0, 0); image.setOrigin(image.getWidth() / 2, image.getHeight() / 2); image.setPosition( result.getTarget().getX() * ViewController.CELL_SIZE + (ViewController.CELL_SIZE - image.getWidth()) * 0.5f, result.getTarget().getY() * ViewController.CELL_SIZE + (ViewController.CELL_SIZE - image.getHeight()) * 0.5f + 6); visualizer.viewController.effectLayer.addActor(image); image.addAction(Actions.sequence( Actions.parallel(Actions.scaleTo(0.75f, 0.75f, 0.5f, Interpolation.sine), Actions.rotateBy(135, 0.5f)), Actions.parallel(Actions.scaleTo(0, 0, 0.5f, Interpolation.sine), Actions.rotateBy(135, 0.5f)), Actions.run(future), Actions.removeActor())); return future; }
From source file:com.vlaaad.dice.states.GameMapState.java
License:Open Source License
@SuppressWarnings("unchecked") private void addGameServicesButtons() { final Table table = new Table(Config.skin); table.setFillParent(true);/*from w ww . j a va2s . c o m*/ table.bottom().left(); final Table content = new Table(); content.left(); table.add(content).expandX().fillX().height(22); stage.addActor(table); Config.mobileApi.services().dispatcher().addListener(new IStateDispatcher.Listener<ServicesState>() { final Ref<ActorGestureListener> listenerVar = new Ref<ActorGestureListener>(); final Table iconContainer = new Table(); boolean isShown; @Override public void onChangedState(ServicesState newState) { content.clearChildren(); if (newState == ServicesState.CONNECTED) { Group servicesButton = new Group(); Image image = new Image(Config.skin, "ui/button/services-up"); final Image notification = new Image(); notification.setScaling(Scaling.none); notification.setPosition(image.getWidth() - 1, image.getHeight() - 4); final Group arrow = new Group(); final Tile arrowUp = new Tile("ui/button/arrow-hide"); final Tile arrowDown = new Tile("ui/button/arrow-show"); image.setPosition(2, -1); arrowDown.getColor().a = 0; arrow.addActor(arrowUp); arrow.addActor(arrowDown); arrow.setSize(arrowUp.getWidth(), arrowUp.getHeight()); arrow.setOrigin(arrow.getWidth() / 2, arrow.getHeight() / 2); servicesButton.setSize(image.getWidth() + 1 + arrow.getWidth(), image.getHeight()); servicesButton.addActor(image); servicesButton.addActor(arrow); servicesButton.addActor(notification); arrow.setPosition(image.getWidth() + 1, image.getHeight() / 2 - arrow.getHeight() / 2); content.add(servicesButton); stage.getRoot().addActorBefore(table, iconContainer); iconContainer.clearChildren(); iconContainer.bottom().setFillParent(true); Table icons = new Table(Config.skin); icons.left().setBackground( Config.skin.newDrawable("particle-white-pixel", new Color(0, 0, 0, 0.25f))); icons.defaults().padBottom(-2); iconContainer.add(icons).expandX().fillX().height(22); icons.add().width(servicesButton.getWidth()).padRight(2); iconContainer.setY(-22); listenerVar.set(new ActorGestureListener() { @Override public void tap(InputEvent event, float x, float y, int count, int button) { notification.setDrawable(null); iconContainer.clearActions(); arrowUp.clearActions(); arrowDown.clearActions(); isShown = !isShown; Config.preferences.setServicesPaneShownByDefault(isShown); arrow.addAction(Actions.rotateBy(180, 0.25f, Interpolation.pow3Out)); if (isShown) { arrowDown.addAction(Actions.alpha(1, 0.25f, Interpolation.pow3Out)); arrowUp.addAction(Actions.alpha(0, 0.25f, Interpolation.pow3Out)); iconContainer.addAction(Actions.moveTo(0, 0, 0.25f, Interpolation.pow3Out)); } else { arrowDown.addAction(Actions.alpha(0, 0.25f, Interpolation.pow3Out)); arrowUp.addAction(Actions.alpha(1, 0.25f, Interpolation.pow3Out)); iconContainer.addAction(Actions.moveTo(0, -22, 0.25f, Interpolation.pow3Out)); } } }); servicesButton.addListener(listenerVar.get()); final Cell conflictCell = icons.add(); final Cell inviteCell = icons.add(); Button achievements = new Button(Config.skin, "achievements"); achievements.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { Config.mobileApi.services().gameAchievements().showAchievements(); } }); icons.add(achievements).padLeft(4); Button leaderboards = new Button(Config.skin, "leaderboards"); leaderboards.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { Config.mobileApi.services().showLeaderboard("CgkIsNnQ2ZcKEAIQFw"); } }); icons.add(leaderboards).padLeft(4); Button signOut = new Button(Config.skin, "sign-out"); signOut.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { Config.mobileApi.services().signOut(); } }); icons.add(signOut).expandX().right().padRight(2); final Button conflict = new Button(Config.skin, "conflict"); conflict.addAction(Actions.forever( Actions.sequence(Actions.color(Color.valueOf("eb653c"), 0.5f, Interpolation.sine), Actions.color(Color.WHITE, 0.5f, Interpolation.sine)))); conflict.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { new ConflictWindow().show(new ConflictWindow.Params(userData, UserData.deserialize(callback.getConflictServerData()), new ConflictWindow.Callback() { @Override public void onResult(ConflictResolution conflictResolution) { callback.resolveConflictingState(conflictResolution); } })); } }); final Button invitesButton = new Button(Config.skin, "invite"); invitesButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { new BlockingWindow() .show(Config.mobileApi.services().multiplayer().displayInvitations()); } }); invitesButton.setColor(Color.GREEN); Config.mobileApi.services().multiplayer().invites() .addListener(new IStateDispatcher.Listener<Integer>() { @Override public void onChangedState(Integer invites) { // Logger.debug("invites count: " + invites); if (invites > 0) { if (!isShown) { notification .setDrawable(Config.skin.getDrawable("ui/button/notification")); } inviteCell.padLeft(4); inviteCell.setActor(invitesButton); } else { inviteCell.padRight(0); inviteCell.setActor(null); } } }, true); callback.dispatcher() .addListener(new IStateDispatcher.Listener<ConflictResolver.ResolverState>() { @Override public void onChangedState(ConflictResolver.ResolverState newState) { if (newState == ConflictResolver.ResolverState.hasConflict) { if (!isShown) { notification .setDrawable(Config.skin.getDrawable("ui/button/notification")); } conflictCell.padLeft(4); conflictCell.setActor(conflict); } else { conflictCell.padRight(0); conflictCell.setActor(null); } } }, true); if (!isShown && Config.preferences.isServicesPaneShownByDefault()) { listenerVar.get().tap(null, 0, 0, 0, 0); } } else { Button signIn = new Button(Config.skin, "services-sign-in"); signIn.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { Config.mobileApi.services().signIn(); } }); content.add(signIn).left().padBottom(-4).padLeft(1); if (isShown && listenerVar.get() != null) { listenerVar.get().tap(null, 0, 0, 0, 0); Config.preferences.setServicesPaneShownByDefault(true); listenerVar.clear(); } } } }, true); }
From source file:fr.plafogaj.screens.MainMenu.java
License:Open Source License
public void animateTable() { m_mainTable.addAction(Actions.sequence(Actions.alpha(0), Actions.delay(0.2f), Actions.fadeIn(0.3f, Interpolation.sine), Actions.delay(0.4f), Actions.moveTo(-BananaKnight.WIDTH / 2 + 160, m_mainTable.getY(), 0.6f, Interpolation.swing), Actions.run(new Runnable() { @Override//from w w w. j av a2 s . c o m public void run() { m_playButton.setChecked(true); m_levelCollapsible.setCollapsed(false); } }))); }
From source file:headmade.arttag.actions.ActionFactory.java
License:Apache License
public static RepeatAction wiggleRepeat(Float rotationAmount, Float duration) { final RepeatAction wiggleAction = Actions .forever(Actions.sequence(Actions.rotateBy(rotationAmount, duration / 4, Interpolation.sineOut), Actions.rotateBy(-rotationAmount * 2, duration / 2, Interpolation.sine), Actions.rotateBy(rotationAmount, duration / 4, Interpolation.sineIn))); return wiggleAction; }
From source file:io.github.sandeel.SplashScreen.java
License:Open Source License
public SplashScreen() { this.complete = false; // create the logo Texture splashTexture = new Texture(Gdx.files.internal("splash.png")); splashImage = new Image(splashTexture); splashImage.addAction(Actions.fadeOut(0.0f)); splashImage.addAction(Actions.sequence(Actions.delay(0.2f), Actions.fadeIn(5f, Interpolation.sine))); stage.addActor(splashImage);//from w ww .j a va2 s . c o m // time x seconds timer = new GameTimer(5000); timer.start(); Music music = MyAssetManager.getInstance().get("audio/music/splash.ogg", Music.class); music.play(); }
From source file:mobi.shad.s3lib.gfx.node.filter.FxTextureGalleryMask.java
License:Apache License
/** * *//*from ww w . j av a 2 s.c o m*/ @Override protected void processLocal() { if (formGui != null) { actionTime = formGui.getFloat("actionTime"); pauseTime = formGui.getFloat("pauseTime"); filesList = formGui.getArrayString("imageList"); filesList = formGui.getArrayString("imageList"); maskTextureName = formGui.getString("imageMask"); interpolationMode = formGui.getInt("interpolationMode"); switch (interpolationMode) { default: interpolation = Interpolation.linear; break; case 1: interpolation = Interpolation.bounce; break; case 2: interpolation = Interpolation.pow2; break; case 3: interpolation = Interpolation.pow3; break; case 4: interpolation = Interpolation.elastic; break; case 5: interpolation = Interpolation.swing; break; case 6: interpolation = Interpolation.sine; break; } data.type = Data.Type.EFFECT_2D; maskTexture = S3ResourceManager.getPixmap(maskTextureName, S3Constans.textureImageSizeHight); if (filesList != null) { if (filesList.length > 1) { srcTexture = S3ResourceManager.getPixmap(filesList[0], S3Constans.textureImageSizeHight); src2Texture = S3ResourceManager.getPixmap(filesList[1], S3Constans.textureImageSizeHight); } else { srcTexture = new Pixmap(S3Constans.textureImageSizeLow, S3Constans.textureImageSizeLow, Format.RGBA8888); srcTexture.setColor(Color.CLEAR); srcTexture.fill(); if (filesList.length > 0) { src2Texture = S3ResourceManager.getPixmap(filesList[0], S3Constans.textureImageSizeHight); } else { src2Texture = new Pixmap(S3Constans.textureImageSizeLow, S3Constans.textureImageSizeLow, Format.RGBA8888); src2Texture.setColor(Color.CLEAR); src2Texture.fill(); } } } else { srcTexture = new Pixmap(S3Constans.textureImageSizeLow, S3Constans.textureImageSizeLow, Format.RGBA8888); srcTexture.setColor(Color.CLEAR); srcTexture.fill(); src2Texture = new Pixmap(srcTexture.getWidth(), srcTexture.getHeight(), srcTexture.getFormat()); src2Texture.setColor(Color.CLEAR); src2Texture.fill(); } if (data.pixmap == null) { data.pixmap = new Pixmap(S3Constans.textureImageSizeHight, S3Constans.textureImageSizeHight, Pixmap.Format.RGBA8888); data.pixmap.setColor(Color.CLEAR); data.pixmap.fill(); data.textureChange = true; } clearPixmap = new Pixmap(S3Constans.textureImageSizeLow, S3Constans.textureImageSizeLow, Format.RGBA8888); clearPixmap.setColor(Color.CLEAR); clearPixmap.fill(); pixmapFilter.setPixmap(data.pixmap, srcTexture, src2Texture, maskTexture); } currentActionTime = 0; currentPauseTime = 0; currentImageIdx = 0; }
From source file:mobi.shad.s3lib.gfx.node.util.FxPixmapToAnimSprite.java
License:Apache License
/** * *//*from www . j ava2 s. co m*/ @Override protected void processLocal() { if (formGui != null) { speedSizeX = formGui.getFloat("speedSizeX") * S3Screen.aspectRatioX; speedSizeY = formGui.getFloat("speedSizeY") * S3Screen.aspectRatioY; startSizeX = formGui.getFloat("startSizeX") * S3Screen.aspectRatioX; startSizeY = formGui.getFloat("startSizeY") * S3Screen.aspectRatioY; amplitudeSizeX = formGui.getFloat("amplitudeSizeX") * S3Screen.aspectRatioX; amplitudeSizeY = formGui.getFloat("amplitudeSizeY") * S3Screen.aspectRatioY; speedPositionX = formGui.getFloat("speedPositionX") * S3Screen.aspectRatioX; speedPositionY = formGui.getFloat("speedPositionY") * S3Screen.aspectRatioY; amplitudePositionX = formGui.getFloat("amplitudePositionX") * S3Screen.aspectRatioX; amplitudePositionY = formGui.getFloat("amplitudePositionY") * S3Screen.aspectRatioY; transformMode = formGui.getInt("transformMode"); interpolationMode = formGui.getInt("interpolationMode"); switch (interpolationMode) { default: interpolation = Interpolation.linear; break; case 1: interpolation = Interpolation.bounce; break; case 2: interpolation = Interpolation.pow2; break; case 3: interpolation = Interpolation.pow3; break; case 4: interpolation = Interpolation.elastic; break; case 5: interpolation = Interpolation.swing; break; case 6: interpolation = Interpolation.sine; break; case 7: interpolation = Interpolation.bounceIn; break; case 8: interpolation = Interpolation.bounceOut; break; } fileTextureName = formGui.getString("FxTextureLoaderFile"); } if (data.pixmap == null) { return; } data.spriteTexture = S3ResourceManager.getTexture(fileTextureName, 32); updateLocal(0, 0, 0, 0, false); }
From source file:net.mwplay.cocostudio.ui.CocoStudioUIEditor.java
License:Apache License
/** * ??// w ww . j a v a 2 s . co m */ public Interpolation getInterpolation(int tweenType) { switch (tweenType) { case 0: return Interpolation.linear; case 1: return Interpolation.sineIn; case 2: return Interpolation.sineOut; case 3: return Interpolation.sine; case 4: return Interpolation.linear; //??Quad_EaseIn case 5: return Interpolation.linear; //??Quad_EaseOut case 6: return Interpolation.linear; //??Quad_EaseInOut case 7: return Interpolation.linear; //??Cubic_EaseIn case 8: return Interpolation.linear; //??Cubic_EaseOut case 9: return Interpolation.linear; //??Cubic_EaseInOut case 10: return Interpolation.linear; //??Quart_EaseIn case 11: return Interpolation.linear; //??Quart_EaseOut case 12: return Interpolation.linear; //??Quart_EaseInOut case 13: return Interpolation.linear; //??Quint_EaseIn case 14: return Interpolation.linear; //??Quint_EaseOut case 15: return Interpolation.linear; //??Quint_EaseInOut case 16: return Interpolation.exp10In; case 17: return Interpolation.exp10Out; case 18: return Interpolation.exp10; case 19: return Interpolation.circleIn; case 20: return Interpolation.circleOut; case 21: return Interpolation.circle; case 22: return Interpolation.elasticIn; case 23: return Interpolation.elasticOut; case 24: return Interpolation.elastic; case 25: return Interpolation.linear; //??Back_EaseIn case 26: return Interpolation.linear; //??Back_EaseOut case 27: return Interpolation.linear; //??Back_EaseInOut case 28: return Interpolation.bounceIn; case 29: return Interpolation.bounceOut; case 30: return Interpolation.bounce; default: return Interpolation.linear; } }
From source file:net.spookygames.gdx.sfx.demo.GdxSfxDemo.java
License:Open Source License
@Override public void create() { /******************/ /* Initialization */ /******************/ prefs = Gdx.app.getPreferences("GdxSfxDemo"); batch = new SpriteBatch(); Camera camera = new OrthographicCamera(); FileHandleResolver resolver = new AbsoluteFileHandleResolver(); assetManager = new AssetManager(resolver); assetManager.setLoader(SfxMusic.class, new SfxMusicLoader(resolver)); skin = new Skin(Gdx.files.internal("skin/uiskin.json")); player = new SfxMusicPlayer(); /************/ /* Playlist */ /************/ final VerticalGroup playlistGroup = new VerticalGroup(); playlistGroup.fill().left();//from w w w . j av a2 s. co m final Label invitationLabel = new Label("Add some music and let's have fun", skin, "subtitle"); invitationLabel.setAlignment(Align.center); ScrollPane scrollablePlaylistTable = new ScrollPane(playlistGroup, skin); scrollablePlaylistTable.setScrollingDisabled(true, false); playlistGroup.addActor(invitationLabel); /********/ /* File */ /********/ Button fileFinder = new TextButton("Add music", skin, "round"); fileFinder.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { NativeFileChooserConfiguration conf = new NativeFileChooserConfiguration(); conf.directory = Gdx.files.absolute(prefs.getString("last", Gdx.files.isExternalStorageAvailable() ? Gdx.files.getExternalStoragePath() : (Gdx.files.isLocalStorageAvailable() ? Gdx.files.getLocalStoragePath() : System.getProperty("user.home")))); conf.nameFilter = new FilenameFilter() { final String[] extensions = { "wav", "mp3", "ogg" }; @Override public boolean accept(File dir, String name) { int i = name.lastIndexOf('.'); if (i > 0 && i < name.length() - 1) { String desiredExtension = name.substring(i + 1).toLowerCase(Locale.ENGLISH); for (String extension : extensions) { if (desiredExtension.equals(extension)) { return true; } } } return false; } }; conf.mimeFilter = "audio/*"; conf.title = "Choose audio file"; fileChooser.chooseFile(conf, new NativeFileChooserCallback() { @Override public void onFileChosen(FileHandle file) { if (file == null) return; prefs.putString("last", file.parent().file().getAbsolutePath()); MusicParameters parameters = new MusicParameters(); parameters.title = file.name(); parameters.loadedCallback = new LoadedCallback() { @Override public void finishedLoading(AssetManager assetManager, String fileName, @SuppressWarnings("rawtypes") Class type) { final SfxMusic music = assetManager.get(fileName, SfxMusic.class); if (player.addToPlaylist(music)) { final MusicWidget widget = new MusicWidget(skin, music); playlistGroup.addActor(widget); widget.removeButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { if (player.removeFromPlaylist(music)) widget.remove(); } }); } } }; assetManager.load(new AssetDescriptor<SfxMusic>(file, SfxMusic.class, parameters)); } @Override public void onCancellation() { } @Override public void onError(Exception exception) { } }); } }); /***********/ /* Control */ /***********/ Table controlTable = new Table(skin); final Button playPauseButton = new Button(skin, "music"); playPauseButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { if (playPauseButton.isChecked()) { player.play(); } else { player.pause(); } } }); Button previousButton = new Button(skin, "left"); previousButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { player.previous(); } }); Button nextButton = new Button(skin, "right"); nextButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { player.next(); } }); final Button muteButton = new Button(skin, "sound"); muteButton.setChecked(true); muteButton.addListener(new ChangeListener() { float formerVolume = player.getVolume(); @Override public void changed(ChangeEvent event, Actor actor) { float newVolume; if (muteButton.isChecked()) { // Un-mute newVolume = formerVolume; } else { // Mute formerVolume = player.getVolume(); newVolume = 0f; } player.setVolume(newVolume); } }); final Slider panSlider = new Slider(-1f, 1f, 0.02f, false, skin); panSlider.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { player.setPan(panSlider.getValue()); } }); panSlider.setValue(player.getPan()); final Slider volumeSlider = new Slider(0f, 1f, 0.01f, false, skin); volumeSlider.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { muteButton.setChecked(true); player.setVolume(volumeSlider.getValue()); } }); volumeSlider.setValue(player.getVolume()); final CheckBox shuffleCheckBox = new CheckBox("Shuffle", skin, "switch"); shuffleCheckBox.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { player.setShuffleEnabled(shuffleCheckBox.isChecked()); } }); shuffleCheckBox.setChecked(player.isShuffleEnabled()); final CheckBox repeatCheckBox = new CheckBox("Repeat", skin, "switch"); repeatCheckBox.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { player.setRepeatEnabled(repeatCheckBox.isChecked()); } }); repeatCheckBox.setChecked(player.isRepeatEnabled()); final Table fadeTable = new Table(skin); final Label fadeDurationLabel = new Label("0.0s", skin); final Slider fadeDurationSlider = new Slider(0.1f, 5f, 0.1f, false, skin); fadeDurationSlider.addListener(new ChangeListener() { String format = "%.1fs"; @Override public void changed(ChangeEvent event, Actor actor) { float value = fadeDurationSlider.getValue(); player.setFadeDuration(value); fadeDurationLabel.setText(String.format(format, value)); } }); fadeDurationSlider.setValue(player.getFadeDuration()); final SelectBox<String> fadeInterpolationSelectBox = new SelectBox<String>(skin); final ObjectMap<String, Interpolation> interpolations = new ObjectMap<String, Interpolation>(); interpolations.put("Linear", Interpolation.linear); interpolations.put("Fade", Interpolation.fade); interpolations.put("Circle", Interpolation.circle); interpolations.put("Sine", Interpolation.sine); interpolations.put("Bounce", Interpolation.bounce); interpolations.put("Elastic", Interpolation.elastic); interpolations.put("Swing", Interpolation.swing); fadeInterpolationSelectBox.setItems(interpolations.keys().toArray()); fadeInterpolationSelectBox.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { player.setFadeInterpolation(interpolations.get(fadeInterpolationSelectBox.getSelected())); } }); fadeTable.defaults().left().pad(1f); fadeTable.row(); fadeTable.add("Duration"); fadeTable.add(fadeDurationSlider).expandX().fill(); fadeTable.add(fadeDurationLabel).width(40); fadeTable.row(); fadeTable.add("Interpolation"); fadeTable.add(fadeInterpolationSelectBox).colspan(2).expandX().fill(); final CheckBox fadeCheckBox = new CheckBox("Fade", skin, "switch"); fadeCheckBox.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { boolean fade = fadeCheckBox.isChecked(); player.setFadingEnabled(fade); fadeTable.setVisible(fade); } }); fadeCheckBox.setChecked(player.isFadingEnabled()); fadeTable.setVisible(player.isFadingEnabled()); controlTable.defaults().padTop(4f); controlTable.row().colspan(3); controlTable.add(shuffleCheckBox).left(); controlTable.row().colspan(3); controlTable.add(repeatCheckBox).left(); controlTable.row().colspan(3); controlTable.add(fadeCheckBox).left(); controlTable.row().colspan(3); controlTable.add(fadeTable); controlTable.row(); controlTable.add("Pan"); controlTable.add(panSlider).colspan(2); controlTable.row().colspan(3); controlTable.add().expand(); controlTable.row(); controlTable.add(previousButton).right(); controlTable.add(playPauseButton); controlTable.add(nextButton).left(); controlTable.row(); controlTable.add("Volume"); controlTable.add(volumeSlider).colspan(2); controlTable.row(); controlTable.add("Mute"); controlTable.add(muteButton).colspan(2).left(); /*********/ /* Debug */ /*********/ Label debugLabel = new Label("", skin) { @Override public void act(float delta) { setText(player.toString()); super.act(delta); } }; /***************/ /* Stage setup */ /***************/ Table leftTable = new Table(skin); leftTable.row(); leftTable.add(scrollablePlaylistTable).expand().fillX().top(); leftTable.row(); leftTable.add(debugLabel).expandX().left().padLeft(30f).padTop(8f); Table rightTable = new Table(skin); rightTable.row(); rightTable.add(controlTable).expandY().fill(); rightTable.row(); rightTable.add(fileFinder).padTop(10f); Table rootTable = new Table(skin); rootTable.setFillParent(true); rootTable.row(); rootTable.add(leftTable).expand().fill(); rootTable.add(rightTable).expandY().fill().padTop(25f).padLeft(8f); stage = new Stage(new ScreenViewport(camera), batch); stage.addActor(rootTable); /*********/ /* Input */ /*********/ Gdx.input.setInputProcessor(stage); }