diff --git a/core/src/cz/nic/tablexia/TablexiaSettings.java b/core/src/cz/nic/tablexia/TablexiaSettings.java index e8323f3e5e2f19ed29e38adf623d0624b101882a..d0d12cbb459914c6de37c73c8626c49d7c7fe168 100644 --- a/core/src/cz/nic/tablexia/TablexiaSettings.java +++ b/core/src/cz/nic/tablexia/TablexiaSettings.java @@ -13,7 +13,7 @@ import cz.nic.tablexia.game.GameDefinition; import cz.nic.tablexia.game.difficulty.GameDifficulty; import cz.nic.tablexia.loader.application.ApplicationTextManager; import cz.nic.tablexia.screen.AbstractTablexiaScreen; -import cz.nic.tablexia.screen.createuser.FormScreen; +import cz.nic.tablexia.screen.gamemenu.GameMenuScreen; import cz.nic.tablexia.util.Log; import cz.nic.tablexia.util.Utility; @@ -24,7 +24,7 @@ public class TablexiaSettings { private static final int MIN_SCREEN_HEIGHT = (int) (DEFAULT_SCREEN_WIDTH * MAXIMUM_RATIO); private static final boolean DEBUG_SHOW_BOUNDING_BOXES = true; - public static final Class<? extends AbstractTablexiaScreen<?>> INITIAL_SCREEN = FormScreen.class; + public static final Class<? extends AbstractTablexiaScreen<?>> INITIAL_SCREEN = GameMenuScreen.class; public static final String LOCALE_KEY = "locale"; public static final String CURRENT_SCREEN_KEY = "current_screen"; diff --git a/core/src/cz/nic/tablexia/model/User.java b/core/src/cz/nic/tablexia/model/User.java new file mode 100644 index 0000000000000000000000000000000000000000..4067b4a1f2620113076c7f5ce84a1547b8a5301c --- /dev/null +++ b/core/src/cz/nic/tablexia/model/User.java @@ -0,0 +1,20 @@ +package cz.nic.tablexia.model; + +/** + * Created by lhoracek on 4/16/15. + */ +public class User { + private Gender gender; + + public Gender getGender() { + return gender; + } + + public void setGender(Gender gender) { + this.gender = gender; + } + + public static enum Gender { + MALE,FEMALE; + } +} diff --git a/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java b/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java index 89d224be78bd76a10abe5c067a8b1e51cb701c2a..ee42c1391b7b7c574a567090192da05c603bc477 100644 --- a/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java +++ b/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java @@ -12,6 +12,7 @@ import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import cz.nic.tablexia.TablexiaSettings; import cz.nic.tablexia.loader.application.ApplicationFontManager; +import cz.nic.tablexia.model.User; import cz.nic.tablexia.screen.AbstractAutoloadTablexiaScreen; import cz.nic.tablexia.util.ScaleUtil; import cz.nic.tablexia.util.listener.DragActorListener; @@ -25,6 +26,7 @@ public class FormScreen extends AbstractAutoloadTablexiaScreen<Void> { private Label ageLabel, nameLabel; private int age; private String name; + private User user = new User(); public FormScreen() { @@ -100,7 +102,7 @@ public class FormScreen extends AbstractAutoloadTablexiaScreen<Void> { selector.setPosition(getStage().getWidth() * 0.735f, getStage().getWidth() * 0.169f); group.addActor(selector); float middle = getStage().getWidth() * 0.71f + getStage().getWidth() * 0.027f; - DragSwitchListener sl =new DragSwitchListener(selector, getStage().getWidth() * 0.71f, getStage().getWidth() * 0.71f + getStage().getWidth() * 0.055f, middle); + DragSwitchListener sl = new DragSwitchListener(selector, getStage().getWidth() * 0.71f, getStage().getWidth() * 0.71f + getStage().getWidth() * 0.055f, middle); selector.addListener(sl); sl.setSwitchMovedListener(new DragSwitchListener.SwitchMovedListener() { @Override @@ -111,6 +113,12 @@ public class FormScreen extends AbstractAutoloadTablexiaScreen<Void> { steps[step].setVisible(true); } }); + sl.setSwitchSelectedListener(new DragSwitchListener.SwitchSelectedListener() { + @Override + public void stepSelected(int step) { + user.setGender(step == 0 ? User.Gender.FEMALE : User.Gender.MALE); + } + }); sl.switchToStep(1); sl.setDisabledPoint(middle); diff --git a/core/src/cz/nic/tablexia/screen/gamemenu/pages/GameMenuPage.java b/core/src/cz/nic/tablexia/screen/gamemenu/pages/GameMenuPage.java index 54666a561f8b45217070149d3eb2a0cd588efdd0..5beb67f7cb190fc220f5a151b0fbfbd9e3fa1f0c 100644 --- a/core/src/cz/nic/tablexia/screen/gamemenu/pages/GameMenuPage.java +++ b/core/src/cz/nic/tablexia/screen/gamemenu/pages/GameMenuPage.java @@ -6,9 +6,7 @@ import com.badlogic.gdx.graphics.g2d.Batch; import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.InputEvent; -import com.badlogic.gdx.scenes.scene2d.InputListener; import com.badlogic.gdx.scenes.scene2d.actions.AlphaAction; -import com.badlogic.gdx.scenes.scene2d.actions.MoveToAction; import com.badlogic.gdx.scenes.scene2d.ui.Image; import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.Stack; @@ -17,9 +15,10 @@ import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import cz.nic.tablexia.TablexiaSettings; import cz.nic.tablexia.game.GameDefinition; import cz.nic.tablexia.game.difficulty.GameDifficulty; -import cz.nic.tablexia.loader.application.ApplicationTextManager; import cz.nic.tablexia.screen.AbstractTablexiaScreen; import cz.nic.tablexia.screen.gamemenu.GameMenuAssets; +import cz.nic.tablexia.util.Log; +import cz.nic.tablexia.util.listener.DragSwitchListener; import cz.nic.tablexia.util.ui.ViewPager; /** @@ -33,6 +32,7 @@ public class GameMenuPage extends MenuPage implements ViewPager.ScrollListener { private Actor diffEasy, diffMedium, diffHard; private Stack diffStack; private GameDifficulty gameDifficulty = GameDifficulty.EASY; + private DragSwitchListener dragSwitchListener; private float scrollOffset = TablexiaSettings.getDefaultScreenWidth(); // hack to keep paralax layers out of picture before scrolled for first time @@ -149,43 +149,18 @@ public class GameMenuPage extends MenuPage implements ViewPager.ScrollListener { diffStack.setSize(diffWidth, diffHeight); diffStack.setPosition(diffX, diffY); addActor(diffStack); - setDifficulty(gameDifficulty); - - diffStack.addListener(new InputListener() { - float lastX; - + diffStack.addListener(dragSwitchListener = new DragSwitchListener(diffStack, diffEasyX, diffHardX, diffMediumX)); + dragSwitchListener.setSwitchMovedListener(new DragSwitchListener.SwitchMovedListener() { @Override - public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { - super.touchDown(event, x, y, pointer, button); - lastX = x; - event.stop(); - return true; - } - - @Override - public void touchDragged(InputEvent event, float x, float y, int pointer) { - super.touchDragged(event, x, y, pointer); - float bx = diffStack.getX() + (x - lastX); - if (bx >= diffEasyX && bx <= diffHardX) { - diffStack.setPosition(bx, diffStack.getY()); + public void movedToStep(int step) { + Log.info(((Object) this).getClass().getName(), "moved to step: " + step); + for(int i = 0 ; i< diffStack.getChildren().size; i++){ + diffStack.getChildren().get(i).setVisible(i==step); } - showDifficulty(getDifficulty()); - event.stop(); - } - - @Override - public void touchUp(InputEvent event, float x, float y, int pointer, int button) { - super.touchUp(event, x, y, pointer, button); - float bx = diffStack.getX() + (x - lastX); - - GameDifficulty newDiff = getDifficulty(); - setDifficulty(newDiff); - if (gameDifficulty != newDiff) { - difficultyChanged(newDiff); - } - event.stop(); } }); + setDifficulty(gameDifficulty); // TODO + } /** @@ -194,20 +169,7 @@ public class GameMenuPage extends MenuPage implements ViewPager.ScrollListener { * @param difficulty */ public void setDifficulty(GameDifficulty difficulty) { - showDifficulty(difficulty); - MoveToAction ma = new MoveToAction(); - switch (difficulty) { - case EASY: - ma.setPosition(diffEasyX, diffStack.getY()); - break; - case MEDIUM: - ma.setPosition(diffMediumX, diffStack.getY()); - break; - case HARD: - ma.setPosition(diffHardX, diffStack.getY()); - break; - } - diffStack.addAction(ma); + dragSwitchListener.switchToStep(difficulty.ordinal()); if (gameDifficulty != difficulty) { difficultyChanged(difficulty); } @@ -223,51 +185,6 @@ public class GameMenuPage extends MenuPage implements ViewPager.ScrollListener { TablexiaSettings.getInstance().setGameDifficulty(game, difficulty); } - /** - * Get nearest difficulty from current slider position - * - * @return - */ - private GameDifficulty getDifficulty() { - float bx = diffStack.getX(); - if (bx < diffMediumX) { - if ((diffEasyX + ((diffMediumX - diffEasyX) / 2)) > bx) { - return GameDifficulty.EASY; - } else { - return GameDifficulty.MEDIUM; - } - } else { - if ((diffMediumX + ((diffHardX - diffMediumX) / 2)) > bx) { - return GameDifficulty.MEDIUM; - } else { - return GameDifficulty.HARD; - } - } - } - - /** - * Check difficulty image and display corresponding image - * - * @param diff - */ - private void showDifficulty(GameDifficulty diff) { - diffEasy.setVisible(false); - diffMedium.setVisible(false); - diffHard.setVisible(false); - - switch (diff) { - case EASY: - diffEasy.setVisible(true); - break; - case MEDIUM: - diffMedium.setVisible(true); - break; - case HARD: - diffHard.setVisible(true); - break; - } - } - @Override public void draw(Batch batch, float parentAlpha) { // Paralax layers diff --git a/core/src/cz/nic/tablexia/util/listener/DragSwitchListener.java b/core/src/cz/nic/tablexia/util/listener/DragSwitchListener.java index 824909a6b33486b6e7f7257bad0cd61daaa226a7..5d90c72d8fe05e351bfacd28a06ca35dfe22e36e 100644 --- a/core/src/cz/nic/tablexia/util/listener/DragSwitchListener.java +++ b/core/src/cz/nic/tablexia/util/listener/DragSwitchListener.java @@ -36,6 +36,7 @@ public class DragSwitchListener extends InputListener { super.touchDown(event, x, y, pointer, button); grabX = x; startX = actor.getX(); + event.stop(); return true; }