【问题标题】:Scaling renderered shapes in libGDX using ShapeRenderer使用 ShapeRenderer 在 libGDX 中缩放渲染形状
【发布时间】:2018-06-15 15:17:00
【问题描述】:

我制作了一款 Asteroids 游戏,但在屏幕尺寸不同时遇到了问题。是的,我知道视口,但就我而言,我认为这行不通。我尝试使用它,但我的对象不是图像。相反,它们是由 ShapeRenderer 渲染的,因此我猜视口可能不会影响它们。我已经解决了如何适合大多数类型的智能手机屏幕的文本,但不是像播放器和小行星这样的渲染对象。在某些屏幕上,它们的尺寸非常合适,而其他屏幕要么太小,要么太大。

有没有办法在 libGDX 中缩放渲染 (ShapeRenderer) 类型,以便它们适合屏幕尺寸/分辨率?还是我必须尝试为可以使用的常见分辨率实现一个类?

这是说明问题的两张图片。顺便说一下,图片中的文字已经固定好了。

编辑:

现在可以为 ShapeRenderer 创建和应用视口,但我仍然遇到同样的问题。 视口内的游戏对象不会缩放以适应当前屏幕。我需要一种方法来使用视口缩小游戏对象(如果可能的话)。游戏的实现方式是智能手机屏幕的大小是游戏世界大小。因此,如果屏幕很小,移动飞船的空间就很小。我希望对象在适合视口大小的区域内移动。游戏不应因屏幕大小而变得更难或更容易

左侧示例:智能手机大屏幕上的游戏

右侧示例:ShapeRenderer 视口正在工作

【问题讨论】:

  • 视口可以与 SpriteBatch 一起使用。
  • 我正在使用 ShapeRenderer 绘制游戏对象?

标签: java libgdx scaling


【解决方案1】:

创建视口是为了减少在不同尺寸的屏幕上渲染所需的工作量。所以非常适合这种情况。

要将视口与 ShapeRenerer 一起使用,您只需将 ShapeRenderer 的投影矩阵设置为视口相机中的投影矩阵。

shapeRenderer.setProjectionMatrix(veiwport.getCamera().combined);

这意味着 shapeRenderer 将按照视口的配置方式进行渲染。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    • 1970-01-01
    • 2022-10-06
    • 2021-09-29
    相关资源
    最近更新 更多