gpt4 book ai didi

com.badlogic.gdx.scenes.scene2d.ui.Window类的使用及代码示例

转载 作者:知者 更新时间:2024-03-24 10:09:05 25 4
gpt4 key购买 nike

本文整理了Java中com.badlogic.gdx.scenes.scene2d.ui.Window类的一些代码示例,展示了Window类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Window类的具体详情如下:
包路径:com.badlogic.gdx.scenes.scene2d.ui.Window
类名称:Window

Window介绍

[英]A table that can be dragged and act as a modal window. The top padding is used as the window's title height.

The preferred size of a window is the preferred size of the title text and the children as laid out by the table. After adding children to the window, it can be convenient to call #pack() to size the window to the size of the children.
[中]可以拖动并充当模式窗口的表。顶部填充用作窗口的标题高度。
窗口的首选大小是标题文本和表中列出的子项的首选大小。向窗口添加子窗口后,可以方便地调用#pack()将窗口调整为子窗口的大小。

代码示例

代码示例来源:origin: libgdx/libgdx

public void keepWithinStage () {
  if (!keepWithinStage) return;
  Stage stage = getStage();
  if (stage == null) return;
  Camera camera = stage.getCamera();
  if (camera instanceof OrthographicCamera) {
    OrthographicCamera orthographicCamera = (OrthographicCamera)camera;
    float parentWidth = stage.getWidth();
    float parentHeight = stage.getHeight();
    if (getX(Align.right) - camera.position.x > parentWidth / 2 / orthographicCamera.zoom)
      setPosition(camera.position.x + parentWidth / 2 / orthographicCamera.zoom, getY(Align.right), Align.right);
    if (getX(Align.left) - camera.position.x < -parentWidth / 2 / orthographicCamera.zoom)
      setPosition(camera.position.x - parentWidth / 2 / orthographicCamera.zoom, getY(Align.left), Align.left);
    if (getY(Align.top) - camera.position.y > parentHeight / 2 / orthographicCamera.zoom)
      setPosition(getX(Align.top), camera.position.y + parentHeight / 2 / orthographicCamera.zoom, Align.top);
    if (getY(Align.bottom) - camera.position.y < -parentHeight / 2 / orthographicCamera.zoom)
      setPosition(getX(Align.bottom), camera.position.y - parentHeight / 2 / orthographicCamera.zoom, Align.bottom);
  } else if (getParent() == stage.getRoot()) {
    float parentWidth = stage.getWidth();
    float parentHeight = stage.getHeight();
    if (getX() < 0) setX(0);
    if (getRight() > parentWidth) setX(parentWidth - getWidth());
    if (getY() < 0) setY(0);
    if (getTop() > parentHeight) setY(parentHeight - getHeight());
  }
}

代码示例来源:origin: libgdx/libgdx

protected void drawBackground (Batch batch, float parentAlpha, float x, float y) {
  super.drawBackground(batch, parentAlpha, x, y);
  // Manually draw the title table before clipping is done.
  titleTable.getColor().a = getColor().a;
  float padTop = getPadTop(), padLeft = getPadLeft();
  titleTable.setSize(getWidth() - padLeft - getPadRight(), padTop);
  titleTable.setPosition(padLeft, getHeight() - padTop);
  drawTitleTable = true;
  titleTable.draw(batch, parentAlpha);
  drawTitleTable = false; // Avoid drawing the title table again in drawChildren.
}

代码示例来源:origin: libgdx/libgdx

protected void setStage (Stage stage) {
  if (stage == null)
    addListener(focusListener);
  else
    removeListener(focusListener);
  super.setStage(stage);
}

代码示例来源:origin: libgdx/libgdx

private void updateEdge (float x, float y) {
  float border = resizeBorder / 2f;
  float width = getWidth(), height = getHeight();
  float padTop = getPadTop(), padLeft = getPadLeft(), padBottom = getPadBottom(), padRight = getPadRight();
  float left = padLeft, right = width - padRight, bottom = padBottom;
  edge = 0;
  if (isResizable && x >= left - border && x <= right + border && y >= bottom - border) {
    if (x < left + border) edge |= Align.left;
    if (x > right - border) edge |= Align.right;
    if (y < bottom + border) edge |= Align.bottom;
    if (edge != 0) border += 25;
    if (x < left + border) edge |= Align.left;
    if (x > right - border) edge |= Align.right;
    if (y < bottom + border) edge |= Align.bottom;
  }
  if (isMovable && edge == 0 && y <= height && y >= height - padTop && x >= left && x <= right) edge = MOVE;
}

代码示例来源:origin: libgdx/libgdx

public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
  if (button == 0) {
    updateEdge(x, y);
    dragging = edge != 0;
    startX = x;
    startY = y;
    lastX = x - getWidth();
    lastY = y - getHeight();
  }
  return edge != 0 || isModal;
}

代码示例来源:origin: libgdx/libgdx

public Actor hit (float x, float y, boolean touchable) {
  if (!isVisible()) return null;
  Actor hit = super.hit(x, y, touchable);
  if (hit == null && isModal && (!touchable || getTouchable() == Touchable.enabled)) return this;
  float height = getHeight();
  if (hit == null || hit == this) return hit;
  if (y <= height && y >= height - getPadTop() && x >= 0 && x <= getWidth()) {
    // Hit the title bar, don't use the hit child if it is in the Window's table.
    Actor current = hit;
    while (current.getParent() != this)
      current = current.getParent();
    if (getCell(current) != null) return this;
  }
  return hit;
}

代码示例来源:origin: libgdx/libgdx

public void touchDragged (InputEvent event, float x, float y, int pointer) {
  if (!dragging) return;
  float width = getWidth(), height = getHeight();
  float windowX = getX(), windowY = getY();
  float minWidth = getMinWidth(), maxWidth = getMaxWidth();
  float minHeight = getMinHeight(), maxHeight = getMaxHeight();
  Stage stage = getStage();
  boolean clampPosition = keepWithinStage && getParent() == stage.getRoot();
    height += amountY;
  setBounds(Math.round(windowX), Math.round(windowY), Math.round(width), Math.round(height));

代码示例来源:origin: narfman0/GDXWorld

Window window = new Window("GDX World Editor", skin);
window.add(newButton);
window.row();
window.add(loadButton).colspan(2);
window.row();
window.add(exitButton).colspan(2);
window.pack();
window.setX(Gdx.graphics.getWidth()/2 - window.getWidth()/2);
window.setY(Gdx.graphics.getHeight()/2 - window.getHeight()/2);
stage.addActor(window);

代码示例来源:origin: libgdx/libgdx

Window window = new Window("Dialog", skin);
window.getTitleTable().add(new TextButton("X", skin)).height(window.getPadTop());
window.setPosition(0, 0);
window.defaults().spaceBottom(10);
window.row().fill().expandX();
window.add(iconButton);
window.add(buttonMulti);
window.add(imgButton);
window.add(imgToggleButton);
window.row();
window.add(checkBox);
window.add(slider).minWidth(100).fillX().colspan(3);
window.row();
window.add(selectBox).maxWidth(100);
window.add(textfield).minWidth(100).expandX().fillX().colspan(3);
window.row();
window.add(splitPane).fill().expand().colspan(4).maxHeight(200);
window.row();
window.add(passwordLabel).colspan(2);
window.add(passwordTextField).minWidth(100).expandX().fillX().colspan(2);
window.row();
window.add(fpsLabel).colspan(4);
window.pack();

代码示例来源:origin: dsaltares/libgdx-cookbook

Button thirdButton = new Button(new TextureRegionDrawable(new TextureRegion(actor)));
window = new Window("This is the title", ws);
window.debug();
window.setKeepWithinStage(false);
window.padTop(50f);
window.setPosition(dialog.getX() + dialog.getWidth() + 10, secondRowY-window.getHeight()-200);
window.row().colspan(1);
window.add(gameTitle);
window.row().colspan(1);
window.add(firstButton);
window.row().colspan(1);
window.add(secondButton);
window.row().colspan(1);
window.add(thirdButton);
window.pack();

代码示例来源:origin: yichen0831/Bomberman_libGdx

pauseWindow = new Window("Pause", skin);
pauseWindow.setPosition((640 - pauseWindow.getWidth()) / 2, (480 - pauseWindow.getHeight()) / 2);
pauseWindow.setVisible(paused);
pauseWindow.add(continueButton).padBottom(16f);
pauseWindow.row();
pauseWindow.add(exitButton);

代码示例来源:origin: libgdx/libgdx

public void draw (Batch batch, float parentAlpha) {
  Stage stage = getStage();
  if (stage.getKeyboardFocus() == null) stage.setKeyboardFocus(this);
  keepWithinStage();
  if (style.stageBackground != null) {
    stageToLocalCoordinates(tmpPosition.set(0, 0));
    stageToLocalCoordinates(tmpSize.set(stage.getWidth(), stage.getHeight()));
    drawStageBackground(batch, parentAlpha, getX() + tmpPosition.x, getY() + tmpPosition.y, getX() + tmpSize.x,
      getY() + tmpSize.y);
  }
  super.draw(batch, parentAlpha);
}

代码示例来源:origin: libgdx/libgdx

@Override
public void create () {
  spriteBatch = new SpriteBatch();
  // font = new BitmapFont(Gdx.files.internal("data/verdana39.fnt"), false);
  font = new BitmapFont(Gdx.files.internal("data/arial-32-pad.fnt"), false);
  // font = new FreeTypeFontGenerator(Gdx.files.internal("data/arial.ttf")).generateFont(new FreeTypeFontParameter());
  font.getData().markupEnabled = true;
  font.getData().breakChars = new char[] {'-'};
  multiPageFont = new BitmapFont(Gdx.files.internal("data/multipagefont.fnt"));
  // Add user defined color
  Colors.put("PERU", Color.valueOf("CD853F"));
  renderer = new ShapeRenderer();
  renderer.setProjectionMatrix(spriteBatch.getProjectionMatrix());
  stage = new Stage(new ScreenViewport());
  Skin skin = new Skin(Gdx.files.internal("data/uiskin.json"));
  BitmapFont labelFont = skin.get("default-font", BitmapFont.class);
  labelFont.getData().markupEnabled = true;
  // Notice that the last [] has been deliberately added to test the effect of excessive pop operations.
  // They are silently ignored, as expected.
  label = new Label("<<[BLUE]M[RED]u[YELLOW]l[GREEN]t[OLIVE]ic[]o[]l[]o[]r[]*[MAROON]Label[][] [Unknown Color]>>", skin);
  label.setPosition(100, 200);
  stage.addActor(label);
  Window window = new Window("[RED]Multicolor[GREEN] Title", skin);
  window.setPosition(400, 300);
  window.pack();
  stage.addActor(window);
  layout = new GlyphLayout();
}

代码示例来源:origin: libgdx/libgdx

Window window = new Window("Moo", skin);
Label lbl = new Label("ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ", skin);
lbl.setWrap(true);
window.row();
window.add(lbl).width(400);
window.pack();
window.pack();
stage.addActor(window);

代码示例来源:origin: kotcrab/vis-ui

@Override
public void setPosition (float x, float y) {
  super.setPosition((int) x, (int) y);
}

代码示例来源:origin: stackoverflow.com

public class MyStage extends Stage {
  private boolean debug = false;
  private Window debugWindow = new DebugWindow(); // your customized Window that contains the debug info 
  public MyStage(...) {
    addListener(new ClickListener() {
      @Override
      public void clicked(InputEvent event, float x, float y) {
        if (getTapCount() >= 2) { // i.e., double click
          debug = !debug;
        }
      }
    });
  }

  public void act() {
    // ...
    if (debug && debugWindow.getStage() != this) {
      addActor(debugWindow); // This will add the debug window to your stage, making the debug info visible
    }
    else if (!debug && debugWindow.getStage() == this) {
      debugWindow.remove(); // When you want the debug window out of the way
    }
  }
}

代码示例来源:origin: langurmonkey/gaiasky

@Override
public void pack() {
  collapsed = false;
  super.pack();
}

代码示例来源:origin: libgdx/libgdx

public void touchDragged (InputEvent event, float x, float y, int pointer) {
  if (!dragging) return;
  float width = getWidth(), height = getHeight();
  float windowX = getX(), windowY = getY();
  float minWidth = getMinWidth(), maxWidth = getMaxWidth();
  float minHeight = getMinHeight(), maxHeight = getMaxHeight();
  Stage stage = getStage();
  boolean clampPosition = keepWithinStage && getParent() == stage.getRoot();
    height += amountY;
  setBounds(Math.round(windowX), Math.round(windowY), Math.round(width), Math.round(height));

代码示例来源:origin: narfman0/GDXWorld

Window window = new Window("Temporary File Present", skin);
window.add(new Label("It appears GDXWorld did not gracefully exit " +
    "last run, and a temporary file has been found. Do you wish " +
    "to recover from it?", skin));
window.row();
Table controlTable = new Table();
controlTable.add(yesButton);
controlTable.add(noButton);
window.add(controlTable);
window.row();
window.pack();
window.setX(Gdx.graphics.getWidth()/2 - window.getWidth()/2);
window.setY(Gdx.graphics.getHeight()/2 - window.getHeight()/2);
stage.addActor(window);

代码示例来源:origin: libgdx/libgdx

public Actor hit (float x, float y, boolean touchable) {
  if (!isVisible()) return null;
  Actor hit = super.hit(x, y, touchable);
  if (hit == null && isModal && (!touchable || getTouchable() == Touchable.enabled)) return this;
  float height = getHeight();
  if (hit == null || hit == this) return hit;
  if (y <= height && y >= height - getPadTop() && x >= 0 && x <= getWidth()) {
    // Hit the title bar, don't use the hit child if it is in the Window's table.
    Actor current = hit;
    while (current.getParent() != this)
      current = current.getParent();
    if (getCell(current) != null) return this;
  }
  return hit;
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com