Масштабирование видовых экранов в Годо 3 - PullRequest
0 голосов
/ 17 октября 2018

Новичок в Godot / GDScript, и я делаю игру в пиксельном искусстве.

Графика с низким разрешением может быть легко масштабирована путем масштабирования области просмотра, однако это влияет на масштаб всех узлов в дереве.Уменьшение области просмотра дает желаемые четкие края , которые нельзя получить при увеличении узла спрайта (в противном случае пиксель-арт размывается).Проблема возникает, когда я хочу отображать текст или элементы GUI поверх игры.

Я хочу:

  1. визуализировать карту тайлов и игровые спрайты на увеличенном узле / окне просмотра, например120x100 масштабируется до размера окна
  2. Рендеринг кнопок и текста (hud) с постоянным более высоким разрешением в верхней части игры без масштабирования

Я пытался играть в несколько видовых экранов, но я просто неимейте это в виду.

Любая помощь в настройке будет очень признателен!

1 Ответ

0 голосов
/ 18 октября 2018

Я думаю, что установка для этого может выглядеть следующим образом:

- 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

Надеюсь, это поможет.

...