From 087701bc2c41c58262027597ae8587db794fbadd Mon Sep 17 00:00:00 2001 From: "v.tarantik" <v.tarantik@gmail.com> Date: Fri, 6 Mar 2015 13:03:00 +0100 Subject: [PATCH] HOF screen double layered content of ScrollPane --- .../screen/halloffame/HallOfFameScreen.java | 83 +++++++++---------- 1 file changed, 40 insertions(+), 43 deletions(-) diff --git a/core/src/cz/nic/tablexia/screen/halloffame/HallOfFameScreen.java b/core/src/cz/nic/tablexia/screen/halloffame/HallOfFameScreen.java index 84f1f40de..b44da9f38 100644 --- a/core/src/cz/nic/tablexia/screen/halloffame/HallOfFameScreen.java +++ b/core/src/cz/nic/tablexia/screen/halloffame/HallOfFameScreen.java @@ -7,14 +7,15 @@ import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.ui.HorizontalGroup; import com.badlogic.gdx.scenes.scene2d.ui.Image; import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane; +import com.badlogic.gdx.scenes.scene2d.ui.Stack; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.scenes.scene2d.utils.SpriteDrawable; import java.util.List; +import cz.nic.tablexia.TablexiaSettings; import cz.nic.tablexia.screen.AbstractTablexiaScreen; import cz.nic.tablexia.screen.halloffame.assets.HallOfFameAssets; -import cz.nic.tablexia.util.Log; public class HallOfFameScreen extends AbstractTablexiaScreen<Void> { private static enum TrophyHeapAssets { @@ -66,76 +67,71 @@ public class HallOfFameScreen extends AbstractTablexiaScreen<Void> { } private static final int BACKGROUND_TILE_REPEAT_COUNT = 37; - private HorizontalGroup group; + private Stack contentStack; + private HorizontalGroup backgroundGroup; + private Group foregroundGroup; @Override protected void screenLoaded() { - prepareScrollPane(); - //prepareDoorButton(); + contentStack = new Stack(); + contentStack.setHeight(getStage().getHeight()); + prepareBackgroundLayer(); + prepareForegroundLayer(); + + contentStack.addActor(backgroundGroup); + contentStack.addActor(foregroundGroup); + contentStack.setDebug(TablexiaSettings.isShowBoudingBoxes()); + + ScrollPane scrollPane = new ScrollPane(contentStack); + scrollPane.setScrollingDisabled(false, true); + scrollPane.setSize(getStage().getWidth(), getStage().getHeight()); + + getStage().addActor(scrollPane); } - private void prepareScrollPane(){ - group = new HorizontalGroup(); - group.setHeight(getStage().getHeight()); + private void prepareBackgroundLayer(){ + backgroundGroup = new HorizontalGroup(); + backgroundGroup.setHeight(getStage().getHeight()); - Group doorGroup = new Group(); - doorGroup.setHeight(getStage().getHeight()); Texture textureDoor = getTexture(HallOfFameAssets.HALL_OF_FAME_DOOR); Image imgDoor = new Image(textureDoor); imgDoor.setHeight(getStage().getHeight()); - doorGroup.setSize(imgDoor.getWidth(),imgDoor.getHeight()); - doorGroup.addActor(imgDoor); - - final Texture textureDoorButton = getTexture(HallOfFameAssets.HALL_OF_FAME_DOOR_BUTTON_UNPRESSED); - final Image imgDoorButton = new Image(textureDoorButton); - imgDoorButton.setHeight(getStage().getHeight()); - - imgDoorButton.addListener(new ClickListener() { - @Override - public void clicked(InputEvent event, float x, float y) { - Texture textureDoor = getTexture(HallOfFameAssets.HALL_OF_FAME_DOOR_BUTTON_PRESSED); - imgDoorButton.setDrawable(new SpriteDrawable(new Sprite(textureDoor))); - } - }); - imgDoorButton.setZIndex(2); - doorGroup.addActor(imgDoorButton); - - group.addActor(doorGroup); + backgroundGroup.addActor(imgDoor); Texture textureTile = getTexture(HallOfFameAssets.HALL_OF_FAME_BACKGROUND_TILE); - for (int i = 0; i < BACKGROUND_TILE_REPEAT_COUNT; i++) { Image imgBackground = new Image(textureTile); imgBackground.setHeight(getStage().getHeight()); - group.addActor(imgBackground); + backgroundGroup.addActor(imgBackground); } - ScrollPane scrollPane = new ScrollPane(group); - scrollPane.setScrollingDisabled(false,true); - scrollPane.setHeight(getStage().getHeight()); - scrollPane.setWidth(getStage().getWidth()); - getStage().addActor(scrollPane); } private void prepareDoorButton(){ - //TODO positioning - final Texture textureDoor = getTexture(HallOfFameAssets.HALL_OF_FAME_DOOR_BUTTON_PRESSED); - final Image imgDoor = new Image(textureDoor); - imgDoor.setHeight(getStage().getHeight()); + final Texture textureDoorButton = getTexture(HallOfFameAssets.HALL_OF_FAME_DOOR_BUTTON_UNPRESSED); + final Image imgDoorButton = new Image(textureDoorButton); + imgDoorButton.setHeight(getStage().getHeight()); - imgDoor.addListener(new ClickListener() { + imgDoorButton.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { - Texture textureDoor = getTexture(HallOfFameAssets.HALL_OF_FAME_DOOR_BUTTON_UNPRESSED); - imgDoor.setDrawable(new SpriteDrawable(new Sprite(textureDoor))); + Texture textureDoor = getTexture(HallOfFameAssets.HALL_OF_FAME_DOOR_BUTTON_PRESSED); + imgDoorButton.setDrawable(new SpriteDrawable(new Sprite(textureDoor))); } }); - imgDoor.setZIndex(5); - group.addActorAt(0, imgDoor); + foregroundGroup.addActor(imgDoorButton); + + } + + private void prepareForegroundLayer(){ + foregroundGroup = new Group(); + foregroundGroup.setHeight(getStage().getHeight()); + + prepareDoorButton(); } @Override @@ -151,4 +147,5 @@ public class HallOfFameScreen extends AbstractTablexiaScreen<Void> { texturesFileNames.add(asset.getTrophyHeapAssetName()); } } + } \ No newline at end of file -- GitLab