Como esconder a caixa de correio em gamemaker: studio

Video: Gamemaker Studio 2 Tutorial: SCREEN SHAKE!

A opção Manter proporção de aspecto em GameMaker: janela Configurações do jogo Globais do Studio é uma solução rápida fantástico para dispositivos móveis ou jogos de mesa de tela cheia. No entanto, se você tem o efeito caixa de correio, os elementos GUI será desenhada sobre eles, porque eles tomam todos os seus coordenar posições a partir da posição (0,0) tela.

Isto é onde a application_get_position () função entra em jogo. Esta função devolve uma matriz de valores que indicam onde na tela superfície de aplicação está a ser tirada por padrão. Pode usar estes valores para definir uma posição relativa na camada de GUI, não importa o tamanho do GUI.

As seguintes utilizações de procedimento The_Application_Surface_Scaling tutorial.

  1. Abrir obj_Control da árvore de recursos.

  2. Escolha Adicionar Evento → Desenhar → Desenhar GUI.

    O sorteio GUI Evento aparece na seção Eventos.

  3. A partir do controle guia, arraste e solte uma ação Executar Código na seção Ações.

    A janela de código aparece.



  4. Na janela de código, digite o seguinte:

    draw_set_color (c_white) pos = -var application_get_position () - se pos [0] gt; 0 {rácio var = window_get_width () / window_get_height () - display_set_gui_size ((view_hview [0] * 1.5) * razão, (view_hview [0] * 1.5)) -} else {var proporção = window_get_height () / window_get_width () display_set_gui_size ((view_wview * 1.5), (view_wview [0] * 1.5) * rácio) -} var gui_w = display_get_gui_width () - var gui_h = display_get_gui_height () - interruptor (os_type) {case os_windows: caso os_macosx: caso os_linux: os_win8native caso : var win_w = window_get_width () - var win_h = window_get_height () - para quebrar a caso os_android: os_ios case: case: os_winphone caso os_tizen: var win_w = display_get_width () - var win_h = display_get_height () -} break

    Este código configura as variáveis ​​apropriadas com base no tipo de dispositivo, e também define a camada de interface ser sempre 1,5 vezes o tamanho da vista. (Observe que normalmente você teria um check-in aqui para ver se a tela mudou e apenas definir a camada de GUI se ele tem, mas para este tutorial que não é necessário.)

    Video: Functions - GameMaker: Studio - Path Functions

    var x1 = (pos [0] / win_w) * gui_w-var x2 = (pos [2] / win_w) * gui_w-var Y1 = (pos [1] / win_h) * gui_h-var Y2 = (pos [3] / win_h) * gui_h-se pos [0] gt; 0 {draw_rectangle (0, 0, x1, gui_h, false) -draw_rectangle (x2, 0, gui_w, gui_h, false) -} else {draw_rectangle (0, 0, gui_w, y1, false) -draw_rectangle (0, y2, gui_w, gui_h, false) -}

    Este código desenha retângulos brancos para cobrir o caixa de correio.

  5. Clique na marca de seleção verde para salvar e fechar a janela de código.

Se você testar o jogo agora, você deve ver retângulos brancos, quer na parte superior e inferior, ou à esquerda e à direita, dependendo de como você dimensionar a janela (ver nesta figura). Você também pode alterar as configurações do jogo Global de paisagem e retrato para ver como isso afeta o seu jogo.

Os retângulos brancos aparecem sobre o efeito de correio.

Os retângulos brancos aparecem sobre o efeito de correio.

Você provavelmente ainda ver alguns dos barras pretas do efeito letterbox. Isso mostra que os retângulos brancos não substituir o correio efeito-se apenas tentou encobri-los. Agora, cabe a você para voltar e ajustar o código para cobrir, digamos, 2 vezes a área em vez de 1,5 vezes a área, para ver o que a diferença que faz.

Você não tem que usar branco rectangles- você pode usar qualquer cor ou mesmo um Sprite.


Publicações relacionadas