segunda-feira, 3 de agosto de 2020

Variáveis de estado do jogo

O estado do nosso jogo será mantido através de valores que serão armazenados em variáveis. Estas variáveis serão criadas no arquivo TutoProjectGameMode.h, porque um dos objetivos de uma classe do tipo GameMode é manter as regras do jogo.

Existem variáveis de diversos tipos. Vamos criar as seguintes variáveis do tipo Inteiro:
  • PlayerLevel: Armazena o nível atual do jogador.
  • Score: Armazena a pontuação do jogador.
  • ItemCount: Armazena o número de estátuas que foram coletadas.
  • Time: Armazena o tempo restante para o fim do jogo.

Existe um tipo de variável chamado de Booleano. Uma variável deste tipo só pode armazenar os valores true (verdadeiro) ou false (falso). Vamos usar a seguinte variável booleana:
  • bGameOver: Indica se o jogo encerrou.

A letra b no início do nome de uma variável é uma convenção usada para indicar que a variável é booleana.   

As variáveis serão criadas com o modificador de acesso protected, para evitar que outras classes C++ modifiquem diretamente os valores destas variáveis.

O arquivo TutoProjectGameMode.h com a definição das variáveis, ficou assim:
// Copyright Epic Games, Inc. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/GameModeBase.h"
#include "TutoProjectGameMode.generated.h"

UCLASS(minimalapi)
class ATutoProjectGameMode : public AGameModeBase
{
	GENERATED_BODY()

public:
	ATutoProjectGameMode();

protected:
	int32 PlayerLevel;

	int32 Score;

	int32 ItemCount;

	int32 Time;

	bool  bGameOver;
};

A palavra chave int32 define uma variável do tipo inteiro de 32 bits. Uma variável deste tipo pode armazenar valores na faixa de -2.147.483.648 até 2.147.483.647.

A palavra chave bool define uma variável do tipo booleano. Observe que todas as definições de variáveis encerram com o caractere ;.