Давайте сделаем рогалик. Глава 47: Победа и поражение — различия между версиями
Apromix (обсуждение | вклад) (Новая страница: «center Возможны только два финальные события для игроков в …») |
Apromix (обсуждение | вклад) |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
[[Файл:Richard_D_Clark-Let's_Build_a_WinScreen.png|center]] | [[Файл:Richard_D_Clark-Let's_Build_a_WinScreen.png|center]] | ||
− | Возможны | + | Возможны два финальных события для игроков в Подземелье Судьбы. Победа и поражение. Независимо от результата, сначала мы покажем игроку красивую картинку, а затем завершим игру. Код разместим после нашего основного цикла. |
'''dod.bas''' | '''dod.bas''' | ||
− | ... | + | ... |
− | + | Loop Until done = TRUE | |
− | EndIf | + | EndIf |
− | ClearKeys | + | ClearKeys |
− | 'Отображаем сообщение о смерти. | + | 'Отображаем сообщение о смерти. |
− | If isdead = TRUE Then | + | 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 | + | EndIf |
− | 'Отображаем экран победы. | + | 'Отображаем экран победы. |
− | If didwin = TRUE Then | + | 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 | + | EndIf |
− | Если игрок погибнет, флажок isdead будет установлен и мы покажем экран смерти | + | Если игрок погибнет, флажок isdead будет установлен и мы покажем экран смерти, а затем распечатаем файл некролога. Если игрок покинет подземелье с амулетом, мы покажем экран победы и также распечатаем некролог. Только одно (или ни одного) из этих условий может быть верно в любое время. Конечно, это ничтожная компенсация игроку за время, потраченное на игру, но мы надеемся, что реальной платой будет то наслаждение, которое игрок получил от игры. |
Текущая версия на 17:23, 24 декабря 2013
Возможны два финальных события для игроков в Подземелье Судьбы. Победа и поражение. Независимо от результата, сначала мы покажем игроку красивую картинку, а затем завершим игру. Код разместим после нашего основного цикла.
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 будет установлен и мы покажем экран смерти, а затем распечатаем файл некролога. Если игрок покинет подземелье с амулетом, мы покажем экран победы и также распечатаем некролог. Только одно (или ни одного) из этих условий может быть верно в любое время. Конечно, это ничтожная компенсация игроку за время, потраченное на игру, но мы надеемся, что реальной платой будет то наслаждение, которое игрок получил от игры.