Implementacja Game Over

Sposób implementacji Game Over w naszej grze jest bardzo prosty. Kiedy czas się skończy, gracz może kontynuować ruch, ale nie może podnosić nowych przedmiotów. Na ekranie zaś pojawiają się napisy GAME OVER i Press Enter.

W innych artykułach zaimplementowaliśmy już całą niezbędną logikę związaną z Game Over. Jedyną brakującą częścią jest wyrenderowanie wiadomości na ekranie.

Stan Game Over jest kontrolowany przez zmienną logiczną o nazwie bGameOver, która została utworzona w artykule zmienne stanu gry.

Jedynym warunkiem, który prowadzi do zakończenia gry, jest wartość zmiennej Time równa zeru. Jest ona wykonywana w funkcji Clock(), która została pokazana w artykule Tworzenie timera w Unreal C ++.

Gdy wartość zmiennej bGameOver jest true, gracz nie może odebrać elementów, ponieważ jednym z warunków testowanych podczas nakładania się elementu jest to, że zmienna bGameOver nie może być prawdziwa, jak pokazano w artykule klasie TutoProjectCollectable : Functions.

Artykuł TutoProjectHUD class: Drawing on the screen zawiera funkcję DrawHUD(), która służy do renderowania informacji o grze na ekranie. W tej funkcji dodamy warunek, aby sprawdzić, czy jest w stanie Koniec gry i dodamy tekst GAME OVER oraz Press Enter na ekranie. Pełna wersja funkcji DrawHUD() będzie wyglądać następująco:

void ATutoProjectHUD::DrawHUD()
{
  Super::DrawHUD();  

  FString textoHUD = FString::Printf(TEXT("Score: %d"), TutoProjectGameMode->GetScore());
  DrawText(textoHUD, FColor::Yellow, 10, 10, nullptr, 3.0f, false);

  textoHUD = FString::Printf(TEXT("Time: %d"), TutoProjectGameMode->GetTime());
  DrawText(textoHUD, FColor::Red, 300, 10, nullptr, 3.0f, false);

  textoHUD = FString::Printf(TEXT("Player Level: %d"), TutoProjectGameMode->GetPlayerLevel());
  DrawText(textoHUD, FColor::Blue, 550, 10, nullptr, 3.0f, false);

  if (TutoProjectGameMode->IsGameOver())
  {
    DrawText("GAME OVER", FColor::Red, 400, 200, nullptr, 3.0f, false);
    DrawText("Press Enter", FColor::Red, 400, 400, nullptr, 3.0f, false);
  }
}

Zrobione. Zakończyliśmy wdrażanie tej prostej logiki. Teraz skompiluj projekt i wypróbuj grę.

Ten artykuł kończy I część samouczków Unreal C ++. Głównym celem tej części jest umożliwienie Ci pierwszego kontaktu z koncepcjami języka C ++ w Unreal Engine i sprawdzenie ich praktycznego zastosowania.

Projekt z kodem źródłowym jest dostępny pod tym linkiem:

Podczas otworzenia projektu pojawi się komunikat z pytaniem czy chcemy przebudować moduły. Klikamy wtedy przycisk Yes.


Źródło:https://romeroblueprints.blogspot.com/2020/09/implementing-game-over.html