【问题标题】:Scaling viewports in Godot 3在 Godot 3 中缩放视口
【发布时间】:2018-10-17 15:52:01
【问题描述】:

Godot/GDScript 新手,我正在制作像素艺术游戏。

可以通过缩放视口轻松放大低分辨率图形,但这会影响树中所有节点的缩放。缩小视口会得到理想的清晰边缘无法通过放大精灵节点获得(否则像素艺术会模糊)。当我想在游戏中显示文本或 GUI 元素时,问题就出现了。

我想:

  1. 在放大的节点/视口上渲染图块地图和游戏精灵,例如 120x100 缩放到窗口大小
  2. 在游戏顶部以一致的更高分辨率渲染按钮和文本(hud),无需缩放

我尝试过播放多个视口,但我还没有掌握它。

任何有关设置的帮助将不胜感激!

【问题讨论】:

    标签: game-engine viewport pixel scaling godot


    【解决方案1】:

    我认为此设置可能如下所示:

    - scene
      - GameViewportContainer
        - Viewport
      - UIViewportContainer
        - Viewport
    

    将 ViewportContainers 拉伸设置为 true。

    然后在 GameViewportContainer 上的脚本中:

    extends ViewportContainer
    
    var your_custom_size = Vector2(128, 128)
    
    func _ready():
        $Viewport.connect('size_changed', self, '_on_viewport_size_changed')
        change_viewport_size()
    
    func _on_viewport_size_changed():
        change_viewport_size()
    
    func change_viewport_size():
        $Viewport.set_size_override(true, your_custom_size)
        $Viewport.set_size_override_stretch(true)
    

    更多阅读结帐:

    1. https://godotengine.org/qa/25504/pixel-perfect-scaling
    2. https://github.com/godotengine/godot/issues/6506

    希望这会有所帮助。

    【讨论】:

    • $ViewportContainer/Viewport 节点不是您提供的代码中的节点。我用$Viewport 替换了这些节点。然后我在 GameViewportContainer 的视口中添加了一个 tileMap 作为子项,但没有什么可看的 - 子项甚至没有显示。
    • 我通过将视口容器大小设置为窗口大小来让孩子出现。
    • 哦,是的,这是一个错字。已编辑。
    • 编辑器中的视口很挑剔。我建议创建另一个场景并在那里编辑它,然后在视口下实例化该场景。
    • 另一件事,我认为 UIViewportContainer 子树根本不需要。您可以使用 godot 的视口编辑器设置来配置它。除非这与 GameViewportContainer 子树混淆。
    猜你喜欢
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 2020-12-02
    • 2015-04-05
    • 2016-06-19
    • 1970-01-01
    相关资源
    最近更新 更多