quarta-feira, 18 de junho de 2014

GameHUD: Inicializando as variáveis com uma Macro

O jogo de exemplo tem um Blueprint chamado GameHUD que desenha as informações do jogo na tela. Para manter o jogo bem simples, este Blueprint também será responsável por diversas regras do jogo.

A construção deste Blueprint será dividida em vários artigos. Neste artigo vamos criar o Blueprint GameHUD no editor, definir suas variáveis e adicionar uma Macro que irá inicializar as variáveis do jogo.

No menu superior do editor, clique no botão "Blueprints" e escolha a opção "New Class Blueprint":


Na tela seguinte precisamos escolher a classe que servirá como base para o GameHUD. Usaremos a classe HUD como base para podermos desenhar na tela. Só que a classe HUD não é uma das 5 classes padrões que o editor exibe. Para encontrar a classe HUD expanda a opção "Custom Classes" e escreva "hud" na caixa de pesquisa. Escolha a classe "HUD" e clique no botão "Select" conforme a imagem abaixo.


Na próxima tela escolha a pasta "Blueprints" e coloque o nome do blueprint como "GameHUD":


O blueprint GameHUD deve conter as seguintes variáveis:
  • Level (tipo inteiro):  O nível atual do jogo.
  • Score (tipo inteiro): A pontuação do jogador.
  • StatueCont (tipo inteiro): Armazena a quantidade de estátuas que foram coletadas.
  • Time (tipo inteiro): Tempo que falta para encerrar o jogo.
  • GameOver (tipo booleano): Variável que indica se o jogo encerrou.

Mude para o modo "Graph" e crie as variáveis abaixo, todas com a opção "Editable" selecionada:


Na imagem acima podemos ver uma Macro com o nome "StartGame". Esta Macro é responsável por inicializar as variáveis do jogo.

O uso de uma Macro permite que seja definido um conjunto de ações que pode ser chamado em outras partes do EventGraph do Blueprint. Dessa forma evitamos que este conjunto de ações sejam repetidos no EventGraph facilitando a sua modificação por estar em um único lugar.

Neste jogo de exemplo precisamos inicializar as variáveis que controla o jogo em dois momentos. O primeiro é quando o jogo começa a ser executado. O segundo momento é após o fim de uma partida, quando o jogador quiser tentar outra vez.

Para criar esta Macro clique no botão "Macro" que está na aba "My Blueprint" do modo "Graph" e coloque o nome "StartGame":


Na aba "Details" você pode especificar os parâmetros de entrada e saída. Como parâmetro de entrada vamos colocar apenas uma linha de Execução, para isso expanda a categoria "Inputs" e clique no botão "New". Coloque o nome como "In" e o tipo como "exec". Faça o mesmo na categoria "Outputs", mas coloque o nome como "Out", conforme a imagem abaixo.


A imagem seguinte mostra como ficou o Graph da macro criada já com os parâmetros de entrada e saída.


Agora segure a tecla "Alt" e arraste para o Graph da Macro "StartGame" as cinco variáveis que criamos anteriormente. Isso irá criar ações do tipo "Set" para as variáveis. Defina os seguintes valores iniciais para as variáveis:
  • Score: 0
  • Level: 1
  • StatueCont: 0
  • Time: 30
  • GameOver: Falso (desmarcado)

Organize as ações dentro da Macro "StarGame" para ficar da seguinte forma:

Clique para aumentar

A última ação é uma chamada a função "SetTimer" com os seguintes parâmetros:
  • Function Name : Clock
  • Time : 1
  • Looping : Verdadeiro (marcado)

O uso da função "SetTimer" será explicada no próximo artigo.

A imagem abaixo mostra a Macro "StartGame" sendo chamada no evento "BeginPlay". Isto faz com que as ações que estão dentro da Macro sejam executadas.



Próximo: GameHUD: Timer e Custom Event
Anterior: Preparação inicial do Jogo
Sumário