如何在Libgdx中设置屏幕的宽度和高度?

用户2692131

抱歉,我无法清楚地描述我的问题。我重新描述一下:

  1. 我正在用libgdx制作一个android游戏,现在我完成了一个演示:

演示版

它只有一个游戏视图,该视图由GameScreen类实现,而GameScreen类是libgdx中Screen的子类:

public class LaohuGame extends Game {

public static final int FRUIT_NUM = 24;
public static final String WORK_DIR = "Desktop/assets/";

@Override
public void create() {
    GameScreen gameScreen = new GameScreen(this);
    setScreen(gameScreen);

}

public class GameScreen extends LaohuScreen {

private final Stage stage;
public static int START_X = 11;
public static int START_Y = 199;

public GameScreen(Game game) {
    super(game);
    stage = new Stage(GAME_WIDTH,GAME_HEIGHT,true);
    //add actors to the stage
}

public class LaohuScreen implements Screen{

int GAME_WIDTH;
int GAME_HEIGHT;
protected Game game;
public LaohuScreen(Game game) {
    this.game = game;
    GAME_WIDTH = Gdx.graphics.getWidth();
    GAME_HEIGHT = Gdx.graphics.getHeight();
}

GAME_WIDTH,GAME_HEIGHT等于手机屏幕的宽度,高度,因此游戏视图会覆盖整个手机屏幕。

  1. 现在,我继续开发自己的游戏。我想在游戏中查看4个游戏视图。每个游戏视图均由Screenlibgdx中的子类实现我认为完成的游戏应如下图所示:

完成的游戏

A button bar is added to the bottom of the phone screen. When I click one of the 4 buttons, the game view switched, but the button bar didn't switch. For example, if player clicks the "Rank" button, game set the view to Rank View(implemented by Rank screen) which shows players' scores, and the buttons still visible:

按下等级按钮后

  1. I can think of 2 ways to keep the button bar visible:

    1. Combine button bar and game view into a libgdx's Screen. I think it is a waste because I need to draw 4 buttons in every screen, totally 16 buttons in 4 Screens.

    2. Split phone screen into 2 areas; game view area and button bar area. Game view area implemented by libgdx's Screen and I can switch game view by setScreen method. The problem is that libgdx's Screen seems always fills the whole phone screen; I can't set the screen's width and height. I tried using resize(int width, int height) method to cut down the height of screen to leave a blank space for button bar, but it doesn't work.

Code:

public class LaohuGame extends Game {

public static final int FRUIT_NUM = 24;
public static final String WORK_DIR = "Desktop/assets/";


@Override
public void create() {
    GameScreen gameScreen = new GameScreen(this);
    setScreen(gameScreen);

}

@Override
public void setScreen(Screen screen) {
    super.setScreen(screen);
    this.getScreen().resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight() * 5 / 10);
}

@Override
public void resize(int width, int height) {
    if (getScreen() != null) getScreen().resize(width, height * 5 / 10);
}
}

Any suggestions are appreciated.

noone

All libgdx things assume that the width and height always are equal to the "window" size. On a desktop machine this might be less than the whole screensize, but it will still fill the whole render area. On a phone it will most likely always be the phones display size.

将其设置为较小的值将无济于事,因为它不会仅使用渲染区域的一部分。相反,您会得到奇怪的拉伸结果。

不要更改从resize方法获得的值。取而代之的是使用第一个解决方案,并在游戏屏幕底部渲染按钮。

您无需在此处重复任何代码。实现类似“ ButtonBarGUI”的东西,该东西使用Stage和scene2d.ui东西在屏幕底部呈现四个按钮,然后通过Stage.draw()重复使用此帮助器类在任何屏幕上呈现按钮栏。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Android中获得可用的屏幕宽度和高度

来自分类Dev

如何在SwiftUI中获取视图或屏幕的高度和宽度

来自分类Dev

如何在iOS 8中设置UIAlertController的高度和宽度

来自分类Dev

如何在SwiftUI中设置图像的宽度和高度?

来自分类Dev

如何在OpenCV Python中设置框架的高度和宽度

来自分类Dev

如何在js中设置图像对象的高度和宽度

来自分类Dev

如何在图像C#中设置宽度和高度

来自分类Dev

CSS:如何根据屏幕/窗口大小设置宽度和高度?

来自分类Dev

如何在GridView中基于屏幕尺寸设置图像宽度高度

来自分类Dev

如何在GridView中基于屏幕尺寸设置图像宽度高度

来自分类Dev

如何基于屏幕分辨率javafx在fxml中动态设置首选宽度和高度

来自分类Dev

如何在Windows Phone 8.1中获取屏幕分辨率(宽度和高度)?

来自分类Dev

如何在Windows Phone 8.1中获取屏幕分辨率(宽度和高度)?

来自分类Dev

如何在Android Libgdx中设置纵向的主屏幕和横向的其他屏幕?

来自分类Dev

如何使div的高度和宽度等于屏幕的宽度和高度?

来自分类Dev

在iOS中,如何获取屏幕的高度和宽度,包括在横向模式下宽度大于高度?

来自分类Dev

如何在javascript中正确设置SVG的宽度和高度?

来自分类Dev

如何在javascript中正确设置SVG的宽度和高度?

来自分类Dev

如何在UWP应用中为椭圆的宽度和高度设置动画

来自分类Dev

如何在Flutter中设置容器内按钮的高度和宽度?

来自分类Dev

如何在iOS中为x,y,高度,宽度和旋转设置动画?

来自分类Dev

如何在UWP应用中为椭圆的宽度和高度设置动画

来自分类Dev

如何在 d3.js 中为这张地图设置高度和宽度

来自分类Dev

libgdx获取2D游戏的屏幕宽度和高度

来自分类Dev

libgdx获取2D游戏的屏幕宽度和高度

来自分类Dev

Android:如何查找屏幕的宽度和高度?

来自分类Dev

如何获取屏幕的宽度和高度-Android

来自分类Dev

如何在knitr中设置绘图的宽度/高度?

来自分类Dev

如何通过PX在DP中设置高度和宽度

Related 相关文章

  1. 1

    如何在Android中获得可用的屏幕宽度和高度

  2. 2

    如何在SwiftUI中获取视图或屏幕的高度和宽度

  3. 3

    如何在iOS 8中设置UIAlertController的高度和宽度

  4. 4

    如何在SwiftUI中设置图像的宽度和高度?

  5. 5

    如何在OpenCV Python中设置框架的高度和宽度

  6. 6

    如何在js中设置图像对象的高度和宽度

  7. 7

    如何在图像C#中设置宽度和高度

  8. 8

    CSS:如何根据屏幕/窗口大小设置宽度和高度?

  9. 9

    如何在GridView中基于屏幕尺寸设置图像宽度高度

  10. 10

    如何在GridView中基于屏幕尺寸设置图像宽度高度

  11. 11

    如何基于屏幕分辨率javafx在fxml中动态设置首选宽度和高度

  12. 12

    如何在Windows Phone 8.1中获取屏幕分辨率(宽度和高度)?

  13. 13

    如何在Windows Phone 8.1中获取屏幕分辨率(宽度和高度)?

  14. 14

    如何在Android Libgdx中设置纵向的主屏幕和横向的其他屏幕?

  15. 15

    如何使div的高度和宽度等于屏幕的宽度和高度?

  16. 16

    在iOS中,如何获取屏幕的高度和宽度,包括在横向模式下宽度大于高度?

  17. 17

    如何在javascript中正确设置SVG的宽度和高度?

  18. 18

    如何在javascript中正确设置SVG的宽度和高度?

  19. 19

    如何在UWP应用中为椭圆的宽度和高度设置动画

  20. 20

    如何在Flutter中设置容器内按钮的高度和宽度?

  21. 21

    如何在iOS中为x,y,高度,宽度和旋转设置动画?

  22. 22

    如何在UWP应用中为椭圆的宽度和高度设置动画

  23. 23

    如何在 d3.js 中为这张地图设置高度和宽度

  24. 24

    libgdx获取2D游戏的屏幕宽度和高度

  25. 25

    libgdx获取2D游戏的屏幕宽度和高度

  26. 26

    Android:如何查找屏幕的宽度和高度?

  27. 27

    如何获取屏幕的宽度和高度-Android

  28. 28

    如何在knitr中设置绘图的宽度/高度?

  29. 29

    如何通过PX在DP中设置高度和宽度

热门标签

归档