【问题标题】:support screen sizes libgdx - android支持屏幕尺寸 libgdx - android
【发布时间】:2014-09-18 22:00:53
【问题描述】:

我正在尝试使用 Libgdx 在 Android 设备上开发蛇游戏。 众所周知,贪吃蛇游戏是基于一个包含不同单元格的网格。

现在,我开发了游戏的第一个版本。在桌面上,它看起来不错,但在大型 Android 设备(Galaxy S4、HTC ONE)中,所有对象看起来都非常小。此外,游戏的功能已被“破坏”。

在桌面上,游戏以 480px 宽 X 800px 高(OrthographicCamera)的分辨率运行。我还在游戏画面中定义了一个 Viewport 类的实例并将其设置为 FillViewPort(当调用 resize 方法时,我会更新视口)。

显然所有这些都不起作用。游戏大小仍然失真。

我怎样才能保持这个固定的分辨率,或者我应该缩放游戏并保持像素之间的这个比率。

PS 我已经尝试实现所有类型的视口,因为它们记录在 libgdx 的官方网站 - https://github.com/libgdx/libgdx/wiki/Viewports

对我的蛇游戏没有帮助。

这是我的屏幕代码:

package com.david.screens;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.utils.viewport.ExtendViewport;
import com.badlogic.gdx.utils.viewport.FillViewport;
import com.badlogic.gdx.utils.viewport.Viewport;
import com.david.gameworld.GameRenderer;
import com.david.gameworld.GameWorld;
import com.david.helpers.InputHandler;

public class GameScreen implements Screen{

    private GameRenderer renderer;
    private GameWorld world;
    private OrthographicCamera camera;
    private Viewport viewport;

    public GameScreen() {
        world = new GameWorld();
        this.camera = new OrthographicCamera();
        this.camera.setToOrtho(false, 480, 800);
        viewport = new ExtendViewport(480, 800);
        renderer = new GameRenderer(world, camera);
        Gdx.input.setInputProcessor(new InputHandler(world.getSnake()));
    }

    @Override
    public void render(float delta) {
        // TODO Auto-generated method stub
        renderer.render(1/delta);
    }

    @Override
    public void resize(int width, int height) {
        // TODO Auto-generated method stub
        viewport.update(width, height);
    }

    @Override
    public void show() {
        // TODO Auto-generated method stub      
    }

    @Override
    public void hide() {
        // TODO Auto-generated method stub      
    }

    @Override
    public void pause() {
        // TODO Auto-generated method stub      
    }

    @Override
    public void resume() {
        // TODO Auto-generated method stub      
    }

    @Override
    public void dispose() {
        // TODO Auto-generated method stub      
    }
}

【问题讨论】:

    标签: android libgdx screen


    【解决方案1】:
    viewport = new ExtendViewport(480, 800,camera);
    

    在画东西之前,别忘了设置你的投影矩阵。

    【讨论】:

    • 我已经试过了。它不起作用......其他类型的视口也不起作用。
    • 然后检查视口示例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多