예제 #1
0
  public void updateProperties() {
    if (editActors == null) return;

    updateProperties = true;

    Actor model = editActors.get(0);
    getStage().setKeyboardFocus(null);
    name.setText(model.getName());
    visible.setChecked(model.isVisible());
    positionX.setText(String.format(Locale.ENGLISH, "%.2f", model.getX()));
    positionY.setText(String.format(Locale.ENGLISH, "%.2f", model.getY()));
    rotation.setText(String.format(Locale.ENGLISH, "%.2f", model.getRotation()));
    lockRatio.setChecked(Math.abs(model.getScaleX() - model.getScaleY()) < 0.01f);
    scaleX.setText(String.format(Locale.ENGLISH, "%.2f", model.getScaleX()));
    scaleY.setText(String.format(Locale.ENGLISH, "%.2f", model.getScaleY()));
    Color color = model.getColor();
    r.setText(String.format(Locale.ENGLISH, "%.0f", color.r * 255));
    g.setText(String.format(Locale.ENGLISH, "%.0f", color.g * 255));
    b.setText(String.format(Locale.ENGLISH, "%.0f", color.b * 255));
    a.setText(String.format(Locale.ENGLISH, "%.0f", color.a * 255));

    scaleY.setDisabled(lockRatio.isChecked());
    scaleY.setColor(lockRatio.isChecked() ? disableColor : enableColor);

    updateProperties = false;
  }
예제 #2
0
  public SettingsScreen(AbstractScreen parentScreen) {
    super(parentScreen);
    initFitViewport();

    //        final AbstractAuthService authService =
    // mAdapter.getPlatformServices().getAuthService();

    mBgStage.loadImage(this, "Bg/menu/settings-bg.jpg");

    BackButton.create(this, MainMenuScreen.class);

    mSettings = new LocalSettings();

    final CheckBox cbSounds = new CheckBox("", RM.getCheckBoxStyle());
    cbSounds.setBounds(20, 500, SES.BUTTON_HEIGHT, SES.BUTTON_HEIGHT);
    cbSounds.setChecked(mSettings.getSoundEnabled());

    mStage.addActor(cbSounds);
    cbSounds.addListener(
        new ClickListener() {

          @Override
          public void clicked(InputEvent event, float x, float y) {
            mSettings.setSoundEnabled(cbSounds.isChecked());
            mSettings.flush();
          }
        });

    Label lblSounds = new Label("Sound effects", RM.getLabelStyle());
    lblSounds.setBounds(120, 500, 200, SES.BUTTON_HEIGHT);
    mStage.addActor(lblSounds);

    final CheckBox cbMusic = new CheckBox("", RM.getCheckBoxStyle());
    cbMusic.setBounds(20, 400, SES.BUTTON_HEIGHT, SES.BUTTON_HEIGHT);
    cbMusic.setChecked(mSettings.getMusicEnabled());
    mStage.addActor(cbMusic);
    cbMusic.addListener(
        new ClickListener() {

          public void clicked(InputEvent event, float x, float y) {
            mSettings.setMusicEnabled(cbMusic.isChecked());
            mSettings.flush();
          }
        });

    Label lblMusic = new Label("Music", RM.getLabelStyle());
    lblMusic.setBounds(120, 400, 200, SES.BUTTON_HEIGHT);
    mStage.addActor(lblMusic);

    TextButton btnGooglePlayLink = new TextButton("GooglePlay", RM.getTextButtonStyle());
    btnGooglePlayLink.setBounds(SES.buttonRight(), 20, SES.BUTTON_WIDTH, SES.BUTTON_HEIGHT);
    mStage.addActor(btnGooglePlayLink);
    btnGooglePlayLink.addListener(
        new ClickListener() {

          public void clicked(InputEvent event, float x, float y) {}
        });
  }
	@Override
	public void onProfileChange(Profile profile) {
		Setting setting = settingController.getCurrentSetting();
		if (setting != null && areWidgetsInitialized()) {
			musicSlider.setValue(setting.getVolumeMusic() * 100);
			effectsSlider.setValue(setting.getVolumeEffects() * 100);
			zoomCheckBox.setChecked(setting.isZoomEnabled());
			colorBlindnessCheckBox.setChecked(setting.isColorblindEnabled());
		} else if (areWidgetsInitialized()) {
			musicSlider.setValue(50);
			effectsSlider.setValue(50);
			zoomCheckBox.setChecked(false);
			colorBlindnessCheckBox.setChecked(false);

		}

	}
    void initialize() {
      skin.getFont("default").getData().markupEnabled = true;

      for (int i = 0; i < 6; i++) trackButtons.add(new TextButton(i + "", skin, "toggle"));

      animationList.getSelection().setRequired(false);

      premultipliedCheckbox.setChecked(true);

      loopCheckbox.setChecked(true);

      scaleSlider.setValue(1);
      scaleSlider.setSnapToValues(new float[] {1, 1.5f, 2, 2.5f, 3, 3.5f}, 0.01f);

      mixSlider.setValue(0.3f);
      mixSlider.setSnapToValues(new float[] {1, 1.5f, 2, 2.5f, 3, 3.5f}, 0.1f);

      speedSlider.setValue(1);
      speedSlider.setSnapToValues(new float[] {0.5f, 0.75f, 1, 1.25f, 1.5f, 2, 2.5f}, 0.1f);

      alphaSlider.setValue(1);
      alphaSlider.setDisabled(true);

      window.setMovable(false);
      window.setResizable(false);
      window.setKeepWithinStage(false);
      window.setX(-3);
      window.setY(-2);

      window.getTitleLabel().setColor(new Color(0.76f, 1, 1, 1));
      window.getTitleTable().add(openButton).space(3);
      window.getTitleTable().add(minimizeButton).width(20);

      skinScroll.setFadeScrollBars(false);

      animationScroll.setFadeScrollBars(false);
    }
예제 #5
0
  @Override
  public void show() {
    skin = Assets.getSkin();
    ui = new Stage(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), false);
    Gdx.input.setInputProcessor(ui);

    window =
        new Window("window", skin) {
          protected void drawBackground(SpriteBatch batch, float parentAlpha) {}
        };

    window.setBounds(0, 0, ui.getWidth(), ui.getHeight());
    window.setMovable(false);
    window.setColor(0, 0, 0, 0.8f);

    // window.debug();
    window.defaults().spaceBottom(10);
    window.row().fill().expandX();

    final CheckBox bloom = new CheckBox("Enable Bloom", skin);
    bloom.addListener(
        new InputListener() {
          @Override
          public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
            super.touchUp(event, x, y, pointer, button);
            boolean b = bloom.isChecked();
            game.setBloom(b);
            Util.setBloomOption(b);
          }
        });

    bloom.setChecked(Util.getBloomOption());

    window.add(bloom).fill(0f, 0f);

    final TextButton button = new TextButton("Done", skin);
    button.addListener(
        new InputListener() {
          @Override
          public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            game.startMainMenu();
            return true;
          }
        });

    window.add(button).fill(0f, 0f);

    ui.addActor(window);
  }
예제 #6
0
  private Cell addCheckBox(String text, Settings.Key key) {
    final CheckBox checkBox = new CheckBox(text, Resources.getSkin());
    final Settings.Key _key = key;

    checkBox.setChecked(Settings.getBoolean(_key));
    checkBox.addListener(
        new ChangeListener() {
          @Override
          public void changed(ChangeEvent changeEvent, Actor actor) {
            final boolean value = Settings.getBoolean(_key);
            Settings.setBoolean(_key, !value);
          }
        });

    return add(checkBox).left();
  }
 void loadPrefs() {
   debugBonesCheckbox.setChecked(prefs.getBoolean("debugBones", true));
   debugRegionsCheckbox.setChecked(prefs.getBoolean("debugRegions", false));
   debugMeshHullCheckbox.setChecked(prefs.getBoolean("debugMeshHull", false));
   debugMeshTrianglesCheckbox.setChecked(prefs.getBoolean("debugMeshTriangles", false));
   debugPathsCheckbox.setChecked(prefs.getBoolean("debugPaths", true));
   premultipliedCheckbox.setChecked(prefs.getBoolean("premultiplied", true));
   loopCheckbox.setChecked(prefs.getBoolean("loop", false));
   speedSlider.setValue(prefs.getFloat("speed", 0.3f));
   mixSlider.setValue(prefs.getFloat("mix", 0.3f));
   scaleSlider.setValue(prefs.getFloat("scale", 1));
   skeletonX = prefs.getInteger("x", 0);
   skeletonY = prefs.getInteger("y", 0);
   animationList.setSelected(prefs.getString("animationName", null));
   skinList.setSelected(prefs.getString("skinName", null));
   prefsLoaded = true;
 }
예제 #8
0
  protected void disableActors(SnapshotArray<Actor> actors, boolean disable) {
    Color color = disable ? disableColor : enableColor;
    for (Actor actor : actors) {
      actor.setColor(color);

      if (actor instanceof Group) {
        if (!(actor instanceof CheckBox)) disableActors(((Group) actor).getChildren(), disable);
      }

      if (disable) {
        if (actor instanceof TextField) {
          ((TextField) actor).setText("");
        } else if (actor instanceof CheckBox) {
          CheckBox checkBox = (CheckBox) actor;
          checkBox.setChecked(false);
        }
      }
    }
  }
  private void createSoundFXToggleButton(AssetManager assetManager) {

    Texture soundFXButtonActiveTexture =
        assetManager.get("soundfxbutton_active.png", Texture.class);
    Texture soundFXButtonInactiveTexture =
        assetManager.get("soundfxbutton_inactive.png", Texture.class);

    // Run
    // "texture through 2 other thingys to turn it into a "TextureRegiionDrawable,
    // which is what the "Button" constructor needs.
    TextureRegion soundFXActiveButtonTR = new TextureRegion(soundFXButtonActiveTexture);
    TextureRegion soundFXInactiveButtonTR = new TextureRegion(soundFXButtonInactiveTexture);

    TextureRegionDrawable soundFXButtonActiveTRD = new TextureRegionDrawable(soundFXActiveButtonTR);
    TextureRegionDrawable soundFXButtonInactiveTRD =
        new TextureRegionDrawable(soundFXInactiveButtonTR);

    // Create the start button
    CheckBoxStyle s = new CheckBoxStyle();
    s.font = new BitmapFont();
    s.checkboxOn = soundFXButtonActiveTRD;
    s.checkboxOn.setMinHeight(buttonRowHeight);
    s.checkboxOn.setMinWidth(buttonRowHeight);
    s.checkboxOff = soundFXButtonInactiveTRD;
    s.checkboxOff.setMinHeight(buttonRowHeight);
    s.checkboxOff.setMinWidth(buttonRowHeight);
    soundFXButton = new CheckBox("", s);
    soundFXButton.setChecked(true);

    // Define how big it is.
    soundFXButton.setBounds(0f, 0f, buttonRowHeight, buttonRowHeight);

    // Move it to where it should go on the screen.
    soundFXButton.setPosition(
        screenDimensions.x - (buttonColumnWidth + verticalBorderAmount * 4),
        screenDimensions.y - (horizontalBorderAmount + buttonRowHeight * 4 + lineSpacing * 3));

    // Tell it to notify this class (StartScreen) when clicked.
    soundFXButton.addListener(this);

    // Add it to the stage so it will "act" and "draw" when the stage does.
    stage.addActor(soundFXButton);
  }
예제 #10
0
  public OptionScreen(Anvil anvil) {
    super(anvil);

    Skin skin = new Skin(Gdx.files.internal(Systems.Skin));

    back = new Texture(Gdx.files.internal(Locale.SYSTEM_UI_PATH + "marble.png"));
    background = new Image(back);

    FreeTypeFontGenerator gen =
        new FreeTypeFontGenerator(Gdx.files.internal(Locale.FONT_BASE + "Canted Comic.ttf"));
    FreeTypeFontParameter par = new FreeTypeFontParameter();
    par.size = 20;
    par.borderColor = Color.BLACK;
    par.color = Color.WHITE;
    par.borderWidth = 2;
    BitmapFont font = gen.generateFont(par);

    LabelStyle ls = new LabelStyle();
    ls.font = font;

    CheckBox vsync = new CheckBox("VSync", skin);
    vsync.setChecked(getBool("Graphics", "useVsync"));
    vsync.addListener(
        new ClickListener() {
          @Override
          public void clicked(InputEvent event, float x, float y) {
            bVsync = vsync.isChecked();
            vsync.setChecked(vsync.isChecked() ? false : true);
          }
        });

    Separator sep = new Separator();

    CheckBox controller = new CheckBox("Use Controller", skin);
    controller.setChecked(getBool("Controls", "useController"));
    controller.addListener(
        new ClickListener() {
          public void clicked(InputEvent event, float x, float y) {}
        });

    TextButton okay = new TextButton("Apply", skin);
    okay.addListener(
        new ClickListener() {
          @Override
          public void clicked(InputEvent event, float x, float y) {
            save();
            anvil.setScreen(new MenuScreen(anvil));
          }
        });

    Table opt = new Table(skin);
    opt.setFillParent(true);
    opt.setBackground(background.getDrawable());

    opt.add(new Label("Graphics", ls)).row();
    opt.add(sep);
    opt.add(vsync).row();
    opt.add().row();
    opt.add().row();
    opt.add().row();

    opt.add(okay).align(Align.bottomLeft);

    stage.addActor(opt);
    Gdx.input.setInputProcessor(stage);
  }
  @SuppressWarnings("unchecked")
  @Override
  public void create(Table table) {
    lastEndTileX = -1;
    lastEndTileY = -1;
    startTileX = 1;
    startTileY = 1;

    // Create the map
    worldMap = new HierarchicalTiledGraph();
    int roomCount = 100;
    int roomMinSize = 2;
    int roomMaxSize = 8;
    int squashIterations = 100;
    worldMap.init(roomCount, roomMinSize, roomMaxSize, squashIterations);

    paths =
        (TiledSmoothableGraphPath<HierarchicalTiledNode>[]) new TiledSmoothableGraphPath[NUM_PATHS];
    for (int i = 0; i < NUM_PATHS; i++) {
      paths[i] = new TiledSmoothableGraphPath<HierarchicalTiledNode>();
    }
    numPaths = 0;
    heuristic = new TiledManhattanDistance<HierarchicalTiledNode>();
    IndexedAStarPathFinder<HierarchicalTiledNode> levelPathFinder =
        new IndexedAStarPathFinder<HierarchicalTiledNode>(worldMap, true);
    pathFinder = new HierarchicalPathFinder<HierarchicalTiledNode>(worldMap, levelPathFinder);
    pathSmoother =
        new PathSmoother<HierarchicalTiledNode, Vector2>(
            new TiledRaycastCollisionDetector<HierarchicalTiledNode>(worldMap));
    pathSmootherRequest = new PathSmootherRequest<HierarchicalTiledNode, Vector2>();

    requestPool =
        new Pool<MyPathFinderRequest>() {
          @Override
          protected MyPathFinderRequest newObject() {
            return new MyPathFinderRequest();
          }
        };
    PathFinderQueue<HierarchicalTiledNode> pathFinderQueue =
        new PathFinderQueue<HierarchicalTiledNode>(pathFinder);
    MessageManager.getInstance().addListener(pathFinderQueue, PF_REQUEST);

    scheduler = new LoadBalancingScheduler(100);
    scheduler.add(pathFinderQueue, 1, 0);

    renderer = new ShapeRenderer();
    inputProcessor = new TiledHierarchicalAStarInputProcessor(this);

    Table detailTable = new Table(container.skin);

    detailTable.row();
    checkSmooth = new CheckBox("[RED]S[]mooth Path", container.skin);
    checkSmooth.setChecked(smooth);
    checkSmooth.addListener(
        new ChangeListener() {
          @Override
          public void changed(ChangeEvent event, Actor actor) {
            CheckBox checkBox = (CheckBox) event.getListenerActor();
            smooth = checkBox.isChecked();
            updatePath(true);
          }
        });
    detailTable.add(checkSmooth);

    detailTable.row();
    checkDiagonal = new CheckBox("Prefer [RED]D[]iagonal", container.skin);
    checkDiagonal.setChecked(worldMap.diagonal);
    checkDiagonal.addListener(
        new ChangeListener() {
          @Override
          public void changed(ChangeEvent event, Actor actor) {
            CheckBox checkBox = (CheckBox) event.getListenerActor();
            worldMap.diagonal = checkBox.isChecked();
            updatePath(true);
          }
        });
    detailTable.add(checkDiagonal);

    detailTable.row();
    addSeparator(detailTable);

    detailTable.row();
    checkMetrics = new CheckBox("Calculate [RED]M[]etrics", container.skin);
    checkMetrics.setChecked(metrics);
    checkMetrics.addListener(
        new ChangeListener() {
          @Override
          public void changed(ChangeEvent event, Actor actor) {
            CheckBox checkBox = (CheckBox) event.getListenerActor();
            metrics = checkBox.isChecked();
            updatePath(true);
          }
        });
    detailTable.add(checkMetrics);
    detailTable.row();
    addSeparator(detailTable);

    detailTable.row();
    sliderMillisAvailablePerFrame = new Slider(0.1f, 40f, 0.1f, false, container.skin);
    sliderMillisAvailablePerFrame.setValue(16);
    final Label labelMillisAvailablePerFrame =
        new Label(
            "Millis Available per Frame [[" + sliderMillisAvailablePerFrame.getValue() + "]",
            container.skin);
    detailTable.add(labelMillisAvailablePerFrame);
    detailTable.row();
    sliderMillisAvailablePerFrame.addListener(
        new ChangeListener() {
          @Override
          public void changed(ChangeEvent event, Actor actor) {
            labelMillisAvailablePerFrame.setText(
                "Millis Available per Frame [[" + sliderMillisAvailablePerFrame.getValue() + "]");
          }
        });
    Table sliderMapfTable = new Table();
    sliderMapfTable.add(new Label("[RED]-[]  ", container.skin));
    sliderMapfTable.add(sliderMillisAvailablePerFrame);
    sliderMapfTable.add(new Label("  [RED]+[]", container.skin));
    detailTable.add(sliderMapfTable);

    detailWindow = createDetailWindow(detailTable);
  }