Давайте сделаем рогалик. Глава 47: Победа и поражение

Материал из Клуб любителей рогаликов
Версия от 16:56, 24 декабря 2013; Apromix (обсуждение | вклад) (Новая страница: «center Возможны только два финальные события для игроков в …»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Richard D Clark-Let's Build a WinScreen.png

Возможны только два финальные события для игроков в Подземелье Судьбы. Победа или поражение. Независимо от результата, мы игроку сначала покажем красивую графику, а затем завершим игру. Код разместим после нашего основного цикла.

dod.bas ...

  Loop Until done = TRUE

EndIf ClearKeys 'Отображаем сообщение о смерти. If isdead = TRUE Then

  DrawBackground char_dead()
  ckey = pchar.CharName & " has died in the depths of the dungeon."
  PutTextShadow ckey, 20, (txcols / 2) - (Len(ckey) / 2)
  ckey = "Rest in peace valiant warrior!"
  PutTextShadow ckey, 22, (txcols / 2) - (Len(ckey) / 2)
  Sleep
  ClearKeys
  'Создаем файл некролога.
  PrintMorgueFile didwin

EndIf 'Отображаем экран победы. If didwin = TRUE Then

  DrawBackground char_win()
  ckey = pchar.CharName & " has escaped the dungeon with the Amulet!"
  PutTextShadow ckey, 12, (txcols / 2) - (Len(ckey) / 2)
  ckey = "The Kingdom will be saved! Long live King " & pchar.CharName & "!"
  PutTextShadow ckey, 14, (txcols / 2) - (Len(ckey) / 2)
  ckey = "All Hail King " & pchar.CharName & "!"
  PutTextShadow ckey, 16, (txcols / 2) - (Len(ckey) / 2)
  Sleep
  ClearKeys
  'Создаем файл некролога.
  PrintMorgueFile didwin

EndIf

Если игрок погибнет, флажок isdead будет установлен и мы покажем экран смерти и распечатаем файл некролога. Если игрок покинет подземелье с амулетом, мы покажем экран победы и также распечатаем некролог. Только одно (или ни одного) из этих условий может быть верно в любое время. Конечно, это ничтожная компенсация игроку за время, потраченное на игру, но мы надеемя, что реальной платой будет то наслаждение, которое игрок получил от игры.