- •Спектрум в школе
- •1. "LISTNAME"
- •2. "REMONT"
- •BETA BASIC
- •ГЛАВА 1. ВВЕДЕНИЕ
- •ГЛАВА 2. РЕДАКТИРОВАНИЕ
- •Курсор текущей строки
- •Команда EDIT <номер строки>
- •Переключение режимов курсора
- •Управление вводом ключевых слов
- •Проверка синтаксиса
- •Команда LIST FORMAT
- •Команда CSIZE
- •Команды JOIN <номера строк> и SPLIT.
- •Управляющий код "новая строка".
- •ГЛАВА 3. ПРОЦЕДУРЫ
- •Передача параметров в виде ссылки
- •Передача параметров списком
- •Рекурсия
- •Ошибки
- •ГЛАВА 4. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ
- •ГЛАВА 5. ОБРАБОТКА ДАННЫХ
- •ГЛАВА 6. ГРАФИКА
- •ГЛАВА 7. СЕРВИСНЫЕ И ОТЛАДОЧНЫЕ ВОЗМОЖНОСТИ
- •ЗАЩИТА ПРОГРАММ
- •ЧАСТЬ 1
- •ГЛАВА 1. Исключение возможности остановки программ.
- •1.1. Общие рекомендации.
- •1.2 Подпрограмма обработки сообщений с кодами D, H, L.
- •1.6. Метод защиты, используемый в программе FIST III.
- •2.1. Общие рекомендации.
- •2.3. Использование управляющих кодов.
- •40 ЛУЧШИХ ПРОЦЕДУР
- •РАЗДЕЛ А
- •1. ВВЕДЕНИЕ
- •Общие сведения о Бейсике и машинных кодах
- •2. ВНУТРЕННЯЯ СТРУКТУРА ZX SPECTRUM
- •Карта памяти
- •PEEK и POKE
- •Дисплейный файл
- •Атрибуты
- •Буфер принтера
- •Область программ на BASICe
- •Цифровой пятибайтный формат
- •Область переменных
- •Подпрограммы ПЗУ
- •3. МАШИННЫЙ ЯЗЫК Z80
- •Регистры Z80A
- •РАЗДЕЛ B
- •4. ВВЕДЕНИЕ
- •Загрузчик машинного кода
- •5. Подпрограммы сдвига.
- •5.1 Сдвиг атрибутов влево.
- •5.2 Сдвиг атрибутов вправо.
- •5.3 Сдвиг атрибутов вверх.
- •5.4 Сдвиг атрибутов вниз.
- •5.5 Сдвиг влево на один символ.
- •5.6 Сдвиг вправо на один символ.
- •5.7 Сдвиг вверх на один символ
- •МАСТЕРФАЙЛ 09 полная русификация.
- •ВСТУПЛЕНИЕ.
- •2. Использование дополнительного символьного набора.
- •3. Перевод программы на русский язык.
- •СОВЕТЫ ЭКСПЕРТОВ
- •STALINGRAD
- •Введение.
- •Управление игрой
- •Некоторые детали
- •Уровни сложности игры
- •Выгрузка файлов на ленту
- •Замечания
- •FLIGHT SIMULATION
- •Аспекты полета
- •Приборная панель
- •Управление самолетом
- •Навигация
- •STAR RAIDERS
- •Враги
- •Запуск игры
- •Экран
- •Управление
- •Энергия
- •THE TRAIN
- •Краткий сюжет
- •Настройка программы
- •Экран
- •Управление
- •Мост (BRIDGE)
- •Станция (STATION)
- •Развилка или перекресток (SWITCH)
- •DEATH WISH 3
- •FORUM
- •Проблемы ELITE
- •Итоги конкурса на лучший технологически развитый маршрут.
- •POKES
- •Вопросы совместимости.
- •Просьба о помощи.
- •И снова SHERLOCK.
- •СПЕКТРУМ В ШКОЛЕ
- •К УРОКУ ИСТОРИИ.
- •POKES
- •NETHER EARTH
- •HEAD OVER HEELS
- •INTO THE EAGLE'S NEST
- •URIDIUM
- •AMAUROTE
- •GAUNTLET
- •BETA BASIC
- •РАЗДЕЛ 2. КОМАНДЫ
- •1. ALTER <атрибуты> ТО атрибуты
- •2. ALTER <ссылка> ТО ссылка
- •3. AUTO <номер строки> <,шаг>
- •4. BREAK
- •5. CLEAR число.
- •6. CLOCK число или строка
- •7. CLS <номер окна>
- •8. CONTROL CODES (управляющие коды)
- •Коды управления экранными блоками.
- •9. COPY строка COPY массив
- •10. CSIZE ширина <, высота>
- •11. DEFAULT = устройство
- •12. DEF KEY односимвольная строка; строка
- •13. DEF PROC имя процедуры <параметр><,REF параметр>...
- •14. DELETE <номер строки> ТО <номер строки>.
- •15. DELETE имя массива <пределы>
- •ЗАЩИТА ПРОГРАММ
- •ПРОГРАММА ДЛЯ СНЯТИЯ ЗАЩИТ
- •Глава 3. Методы защиты от MERGE
- •40 ЛУЧШИХ ПРОЦЕДУР
- •5.8 Сдвиг вниз на один символ.
- •5.9 Сдвиг влево на один пиксел.
- •5.10 Сдвиг вправо на один пиксел.
- •5.11 Сдвиг вверх на один пиксел.
- •5.12 Сдвиг вниз на один пиксел.
- •6.ДИСПЛЕЙНЫЕ ПРОГРАММЫ
- •6.1 Слияние картинок
- •6.2. Инвертирование экрана.
- •6.3 Инвертирование символа вертикально.
- •6.4 Инвертирование символа горизонтально.
- •6.5 Вращение символа по часовой стрелке.
- •6.6 Изменение атрибута.
- •6.7 Смена атрибута.
- •6.8 Закрашивание контура.
- •6.9 Построение шаблонов.
- •6.10 Увеличение экрана и копирование.
- •Текстовые сообщения программы MF 09 и их перевод
- •ЗАКЛЮЧЕНИЕ.
- •СОВЕТЫ ЭКСПЕРТОВ
- •PROFESSIONAL TENNIS
- •1. Controles
- •2. Equipamiento
- •3. Entrenamiento
- •4. Caracteristicas
- •0. Torneo
- •SNOOKER
- •Правила игры.
- •Настройка программы.
- •Структура экрана.
- •Начало игры.
- •QUAZATRON
- •CAPTAIN FIZZ
- •Экран программы.
- •Полезные советы.
- •FORUM
- •Версия 1.
- •Версия 2.
- •Версия 3
- •Перелеты к двойным звездам и невидимым звездам.
- •Тайные возможности компьютера.
- •Советы и секреты.
- •СПЕКТРУМ В ШКОЛЕ
- •BETA BASIC
- •17. DPOKE адрес, число
- •18. DRAW ТО x,y <,угол>
- •18. EDIT <номер строки>
- •9. EDIT строковая переменная
- •20. ELSE <оператор>
- •21. END PROC
- •22. EXIT IF <условие>
- •23. FILL x,y
- •24. GET числовая переменная
- •25. GET строковая переменная, x,y <ширина, длинах><;тип>
- •26. JOIN <номер строки>
- •27. JOIN строковый массив или числовой массив.
- •28. KEYIN строковая переменная
- •29. KEYWORDS число.
- •30. LET переменная = число <, переменная = число>...
- •31. LIST <номер строки> TO <номер строки>
- •32. LIST DATA
- •33. LIST DEF KEY
- •ЗАЩИТА ПРОГРАММ
- •Глава 4. Прочие приемы защиты.
- •4.1 Запуск программ в кодах.
- •4.3 Ключевые слова Бейсика в "хэдере".
- •4.4 Мерцающий заголовок.
- •Глава 1. Введение
- •Общие рекомендации.
- •Структура фирменной программы.
- •Небольшая историческая справка.
- •Структура хэдера.
- •Глава 2. Блокировка автозапуска.
- •Введение.
- •2.1 Загрузка Бейсика через блок кодов.
- •40 ЛУЧШИХ ПРОЦЕДУР
- •7. ПРОЦЕДУРЫ ОБРАБОТКИ ПРОГРАММ.
- •7.1 Удаление блока программы.
- •7.2 Обмен токена.
- •7.3 Удаление REM строк
- •7.4 Создание REM строк
- •7.5 Сжатие программы.
- •8. ИНСТРУМЕНТАЛЬНЫЕ ПРОГРАММЫ
- •8.1 Определение размера свободной памяти.
- •8.5 Копирование данных в памяти.
- •ВОЗВРАЩАЯСЬ К НАПЕЧАТАННОМУ
- •КАНАЛЫ И ПОТОКИ
- •ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
- •ОБРАБОТКА ОШИБОК В БЕЙСИКЕ
- •ПРЕДОТВРАЩЕНИЕ ОСТАНОВКИ БЕЙСИК ПРОГРАММЫ
- •1. Блок кодов "ON ERROR GO TO"
- •2. Программа "BEEPER"
- •FORUM
- •Адвентюрные игры.
- •Heavy on the Magic.
- •Полезные советы.
- •Советы и секреты.
- •Письмо читателя.
- •Проблемы совместимости.
- •Проблемы "ELITE".
- •СОВЕТЫ ЭКСПЕРТОВ
- •ACADEMY (TAU CETI II)
- •Работа с меню.
- •Просмотр/выбор клавиш.
- •Прием нового кадета.
- •Меню работы с лентой.
- •Рапорт о выполнении уровня.
- •Выбор скиммера.
- •Проектирование скиммеров.
- •Выбор миссии.
- •Уровень I.
- •Уровень II.
- •Уровень III.
- •Уровень IV.
- •Уровень V.
- •Полезные советы по сборке скиммеров.
- •Выполнение миссии.
- •Сводка боевых команд
- •SHERLOCK
- •Понедельник, 8:00
- •Вторник.
- •Среда.
- •НАШ КОНКУРС
- •Письмо читателя.
- •Наши предложения.
- •Наши условия:
- •BETA BASIC
- •34. LIST FORMAT число.
- •35. LIST PROC имя процедуры.
- •36. LIST REF.
- •37. LOCAL переменная <,переменная><,переменная>...
- •38. LOOP
- •39. MERGE
- •40. MOVE
- •42. ON ERROR номер строки
- •43. OVER 2.
- •44. PLOT X,Y <;строка>
- •45. POKE адрес, строка
- •46. POP <числовая переменная>
- •47. PROC имя <параметр><,параметр><,параметр>...
- •49. REF метка
- •50. REF имя переменной.
- •52. ROLL код направления <, число><; х, y; ширина, длина >
- •ЗАЩИТА ПРОГРАММ
- •2.2.2 Изменение хэдера для блокировки автозапуска.
- •3.1 Просмотр строк, защищенных управляющими кодами.
- •40 ЛУЧШИХ ПРОЦЕДУР
- •8.5 Составление списка переменных.
- •8.6 Поиск строки.
- •8.7 Поиск и замещение строки.
- •8.8 Поиск подстроки.
- •Формат данных в "Спектруме"
- •Числовая переменная с именем из одной буквы.
- •Числовая переменная с именем более чем из одной буквы.
- •Числовой массив.
- •Переменные цикла.
- •Символьная переменная.
- •Символьный массив.
- •ЭЛЕМЕНТАРНАЯ ГРАФИКА В МАШИННЫХ КОДАХ
- •ЭЛЕМЕНТАРНАЯ ГРАФИКА В МАШИННЫХ КОДАХ
- •Печать чисел.
- •Печать символьных строк.
- •Управляющие символы.
- •Другие приемы управления позицией и цветом печати.
- •Организация экранной памяти.
- •Файл атрибутов.
- •Изменение цвета бордюра.
- •Эмуляция команд БЕЙСИКа из машинного кода.
- •Скроллинг экрана.
- •PAUSE
- •Рисование точек.
- •Рисование прямых линий.
- •Рисование дуги.
- •Рисование окружности.
- •Проверка точки экрана.
- •Проверка атрибутов экрана.
- •Проверка содержимого заданного знакоместа.
- •СЛУЧАЙНАЯ ГРАФИКА
- •СЛУЧАЙНАЯ ГРАФИКА
- •Проблемы скорости работы.
- •Трансляция БЕЙСИКа в машинный код.
- •КРИБЕДЖ
- •КРИБЕДЖ
- •Игра.
- •Стратегия в крибедже.
- •Пример розыгрыша партии.
- •Программа
- •Комментарий
- •THE DARK WHEEL
- •ГЛАВА 1.
- •СПЕКТРУМ В ШКОЛЕ
- •BETA BASIC
- •53. SAVE <строка TO строка;> устройство;> имя
- •54. SCROLL код направления <,число> <;x,y; ширина, длина>
- •55. SORT
- •56. SPLIT (не ключевое слово).
- •57. TRACE номер строки
- •58. UNTIL условие.
- •59. USING, USING$
- •60. VERIFY <строка TO строка;> устройство;> имя
- •61. WHILE условие.
- •62. WINDOW номер окна <,x,y,w,l>
- •РАЗДЕЛ 3. ФУНКЦИИ
- •1. AND (число, число)
- •3. CHAR$ (число)
- •4. COSE (ЧИСЛО)
- •5. DEC (символьная строка)
- •ЗАЩИТА ПРОГРАММ
- •3.2 Работа со встроенными машинными кодами.
- •Глава 4. Изучение блоков в машинных кодах.
- •4.1 Введение.
- •4.2 Адаптация фирменных программ под индивидуальный вкус.
- •4.2.2. Новые возможности программы "RENEGADE".
- •Введение.
- •ГЛАВА 1.
- •ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
- •"ДЕБЮТ ПРОГРАММЫ"
- •Блок кодов "REM FILL"
- •УНИВЕРСАЛЬНОЕ МЕНЮ
- •Программа "PRIM"
- •Маленькие Хитрости
- •ВЕКТОРНАЯ ГРАФИКА
- •Сокрытие невидимых линий контура
- •Алгоритм.
- •Маленькие хитрости
- •ОШИБКИ ПЗУ
- •1. Ограничение по использованию регистровой пары IY.
- •2. Особенности регистровой пары H'L' (альтернативной).
- •3. Особенности пользовательской функции FN.
- •4. Ошибка деления.
- •6. Ошибка оператора PLOT.
- •7. Ошибка первого экрана в компьютерах 128К.
- •Blinky's
- •СОВЕТЫ ЭКСПЕРТОВ
- •OPERATION HORMUZ
- •TOMAHAWK
- •SKY RANGER
- •TYPHOON
- •THE DARK WHEEL
- •ГЛАВА 2.
- •BETA BASIC
- •6. DPEEK (адрес).
- •7. EOF (номер потока).
- •8. FILLED ().
- •9. HEX$ (число).
- •11. INSTRING (старт, строка 1, строка 2).
- •12. ITEM ()
- •13. LENGTH (n, "имя массива")
- •15. MEMORY$ ()
- •16. MOD (число, число)
- •17. NUMBER (симв. строка)
- •18. OR (число, число)
- •19. RNDM (число)
- •20. SCRN$ (строка, столбец)
- •21. SHIFT$ (число, строка)
- •22. SINE (число)
- •23. STRING$ (число, строка)
- •24. TIME$ ()
- •25. USING$ (строка, число)
- •26. XOR (число, число)
- •ПРИЛОЖЕНИЕ 1
- •ПРИЛОЖЕНИЕ 2.
- •ПРИЛОЖЕНИЕ 3
- •Коды ошибок.
- •ЗАЩИТА ПРОГРАММ
- •1.2 Смещение системной переменной PROG.
- •1.3 Кодирование и декодирование блоков машинных кодов.
- •1.4 Новые POKES.
- •Том 4. Методы защиты программ от копирования.
- •Введение.
- •ОШИБКИ ПЗУ
- •8. Ошибка CLOSE#.
- •9. Ошибка CHR$ 9.
- •10. Ошибка CHR$ 8.
- •11. Ошибка STR$.
- •12. Ошибки кодов управления цветом.
- •13. Ошибка SCREEN$.
- •Ошибки в редакторе
- •14. Ошибка Scroll?.
- •15. Ошибка курсора текущей строки.
- •16 Ошибка ведущего пробела.
- •18 Ошибка проверки синтаксиса.
- •Ошибки калькулятора
- •19. Ошибка MOD_DIV.
- •20. Ошибка E_TO_FP.
- •21. Ошибка INKEY$#0.
- •ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
- •Блок кодов, воспроизводящий звук.
- •Программа "SOUND"
- •Ввод параметров при помощи оператора INPUT.
- •КАК ЭТО ДЕЛАЕТСЯ!
- •RANARAMA
- •Техническое задание.
- •Предварительные исследования.
- •1. Дизайн экрана.
- •2. Раскладка оперативной памяти.
- •3. Упаковка данных.
- •4. Специальные алгоритмы.
- •5. Проверка концепции.
- •Дизайн программы.
- •Машинный код.
- •Звук и музыка.
- •Одноступенчатая модуляция.
- •Пилообразная модуляция
- •Треугольная модуляция
- •Двуступенчатая модуляция
- •Программа.
- •СОВЕТЫ ЭКСПЕРТОВ
- •FLYER FOX
- •COBRA FORCE
- •THUNDER BLADE
- •SANXION
- •AIR WOLF
- •1943 THE BATTLE OF MIDWAY
- •THE DARK WHEEL
- •ГЛАВА 3.
- •ГЛАВА 4
4. Специальные алгоритмы.
Для того, чтобы работать с упакованными, как было описано выше данными, пришлось разработать несколько специальных алгоритмов и на их основе создать несколько соответствующих процедур.
В основу была положена следующая логика работы (представим себе, что герой входит в новую комнату и ее надо "высветить" на экране):
a) По координате "героя" из упакованной карты игрового поля извлекаются координаты комнаты и дверей.
б) На экране строится соответствующая комната из символов, которые выдает специальный знакогенератор.
в) По номеру комнаты из специальной таблицы сценария извлекаются данные о наличии в ней объектов и предметов.
г) По их номерам и координатам они изображаются на экране.
д) Если в таблице программных переменных есть "монстры", находящиеся в данный момент в этой комнате, то изображаются и они.
Для создания трехмерного эффекта теневой графики я разработал специальный алгоритм, который назвал "шэдоу процессором". После того, как комната и весь ее внутренний антураж построены, на изображение накладываются полутоновые горизонтальные и вертикальные тени. На рис. 3 доказано, как все тени изображаются с помощью всего лишь двух элементов.
"Шэдоу процессор" позволил сэкономить еще изрядное количество памяти.
|
объ |
|
ект |
стена |
стена |
|
Рис. 3 |
5. Проверка концепции.
Предприняв такие меры, я успокоился относительно распределения оперативной памяти. Теперь я понял, что ее мне хватит, оставался открытым вопрос о достаточности быстродействия компьютера для того, чтобы обслуживать экран при работе по описанной выше логике.
Пришлось воплотить идеи в машинный код и проверить, как обстоит дело с быстродействием. Не сразу, но дело пошло. Работа оказалась неожиданно сложной. Только примерно через месяц я убедился в том, что экранное представление моих идей совпадает с тем, что я хотел получить. Теперь, закончив предварительные исследования и убедившись, что задача в принципе выполнима, я мог приступать к основному объему работ разработке программы в целом. Надо сказать, что в этот момент мне пришлось преодолеть массу искушений добавить в программу что то еще. Это было, конечно, возможно, но при таком подходе можно никогда не выйти из стадии предварительных исследований.
Дизайн программы.
Закончив с предварительными исследованиями, я перешел к проработке структурной диаграммы. В статьях "Профессиональный подход" (см. "ZX РЕВЮ" 91) мы уделили серьезное внимание тому, как создаются структурные диаграммы, зачем они нужны и чем они отличаются от алгоритмических блок схем. Там же мы упомянули и о том, что при всем многообразии игровых программ, структура их может оказываться удивительно похожей. Так случилось и в этот раз. Практически эта важная и ответственная работа превратилась в пустую формальность. Почти на 100 % подошла структура, ранее разработанная для
программы "QUAZATRON". Конечно мне помогло то, что я начал разработку новой программы не на пустом месте, а уже имея солидный опыт программиста игровых программ. Если же Вам когда то придется начинать это дело "с нуля", то для справки я привожу структурную диаграмму на рис. 4.
Машинный код.
Этот этап я начал с того, что "перетащил" все процедуры, которые можно, из программы "QUAZATRON" в новую программу. Нет никакого смысла изобретать велосипед и если Вы абсолютно уверены, что та или иная процедура надежно работает и хорошо отлажена, то Вы не только сэкономите время на ее разработку, но и более того, она явится необходимой базой для создания работающих с ней совместно других процедур и для их отладки.
Сейчас у меня уходит на создание такой программы примерно восемь месяцев. Это много, но я абсолютно все делаю сам. Тем более для меня очень важна экономия времени за счет использования большого количества проверенных процедур. И, надо сказать, многое мне удалось использовать. Процедуры верхнего уровня структурной диаграммы были вообще перенесены с минимальными доработками.
Основную трудоемкость, как ни странно, составило не программирование машинного кода, а борьба с разного рода мелкими неприятностями. Примерно месяц ушел на то, чтобы выловить все "жучки" в ассемблирующей программе. Я пользовался ассемблером "ОСР", а он регулярно разрушал мои таблицы меток. Еще столько же времени ушло на борьбу с механическими помехами (дребезг контактов на разъеме, через который подключались дисковод и принтер).
Но так или иначе, рано или поздно, наступает такой момент, когда перед Вами еще гора работы, а сделано уже так иного, что отступать нельзя. Вот на этой стадии мне и пришлось столкнуться с концептуальной проблемой, связанной с моим героем. Как оказалось, у меня на него осталось так мало места в оперативной памяти, что сделать приличного чародея я уже не мог. Как я ни экспериментировал, он меня не устраивал. Спас положение Эндрю Брейбрук, который предложил сделать героя лягушкой и тогда спрайт 16x16 получается намного лучше. В поисках приемлемой картинки для своей лягушки я перелистал несколько томов по биологии, неплохо ознакомился с жизнью земноводных и, самое главное, узнал, что лягушка по латыни звучит, как RANA. Так и родилось название игры RANARAMA.
Вторая проблема возникла, когда я уже перевалил за середину своего проекта. Я сделал аркадную вставку, в которой мой герой обменивался ракетными ударами со злыми колдунами. Выпущенная ракета могла взаимодействовать с другими, стационарными ракетами и инициализировать их. При правильной игре можно было вызвать что то вроде цепной реакции и тогда героям приходилось бы непросто.
Все, кто видел мою работу на этой стадии, однозначно оценили эту аркадную вставку, как неудовлетворительную. У меня было еще очень много работы с графикой и я отложил решение этой проблемы в долгий ящик.
Однажды рано утром я сидел и экспериментировал с клочками бумаги на столе, пытаясь придумать оригинальное изображение титульного экрана с названием игры, выполненным крупными буквами. В этот момент меня осенило. Я понял, что аркадной вставкой может стать перестановка букв в слове RANARAMA. Как оказалось, название программы очень соответствует этой задаче. Поскольку в слове есть 4 буквы "А", то аркадная вставка получилась скорее динамичной, чем головоломной. Первые же эксперименты убедили меня в том, что это решение удачно. Труды предыдущего месяца были сняты с полки и полетели в мусорную корзину, а через пару дней проблема перестала существовать.
ПРОГРАММА
Стартовое
сообщение,
музыка
Инициализация “заклятий”, комнат, распаковка "монстров"
Распаковка карты этажа, расстановка "монстров"
Инициализация энергии героя
Построение
экрана
Изображение комнаты, изображение "монстров" на экране
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Настройка |
|
|
Игры |
|
||
программы |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Начало игры |
|
"Лабиринты" |
|
Конец игры |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Начало лабиринта |
|
|
"Этажи" |
|
|
Конец лабиринта |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Начало этажа |
|
"Жизни" |
|
Конец этажа |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Герой появляется |
|
|
"Экраны" |
|
|
Гибель игрока |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Начало экрана |
|
"Комнаты" |
|
Конец экрана |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Начало комнаты |
|
|
ИГРОВЫЕ ТАКТЫ |
|
|
Конец комнаты |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Расчет
результата
Поощряющее
сообщение,
музыка
Упаковка и сохранение данных по "монстрам" этого этажа
Герой
"взрывается"
Выбор очередного экрана
Выбор очередной комнаты
|
|
|
|
|
|
|
|
|
|
|
|
|
Сканирование |
|
Обработка |
|
Обработка героя |
|
"Заэкранные |
|
Конец такта |
||||
клавиатуры |
|
объектов |
|
|
|
перемещения" |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Колдуны |
|
Мультипликация |
Расчет координат |
Изменение |
|||||
|
|
|
Ракеты противника |
|
Аркадная вставка |
"монстров", не |
энергии главного |
|||||
|
|
|
Ракеты героя |
|
Исполнение специальных |
изображаемых в этот |
героя |
|||||
|
|
|
Руны |
|
операций, например |
момент на экране |
|
|
||||
|
|
|
Сцена |
|
показ карты этажа |
|
|
|
|
|
Рис.4 Структурная диаграмма программы RANARAMA