Тем, кто применяет TXT2GAM (использование препроцессора) |
Автор: Ntropy |
07.04.2010 16:47 |
При написании игры без использования QGen, исходный текст не
зашифрован и может редактироваться любым текстовым редактором. Это также дает возможность обработать текстовый файл игры перед тем, как
он будет превращен в QSP-файл - например, удалить отладочный код или неиспользуемые фрагменты текста, а также собрать один файл из нескольких
мелких. В мире программирования на Си эта возможность
называется "препроцессинг" и выполняется утилитой cpp, которая
идет в пакете с компиляторами C. В нашем случае удобно
использовать утилиту, которая не привязана к языку С и и может быть
использована отдельно от компилятора — GPP для Win32. Чтобы воспользоваться этим, нужно добавить в текст
специальные инструкции и об Инструкции (основные)#mode quote — отключает обработку символа "\" как служебного, рекомендуется поставить первой строчкой файла #define <имя> — определить флажок, на который можно будет позже ссылаться #define <имя> <значение> — определить значение, на которое можно будет позже ссылаться #undef <имя> — удаление значения или флажка #ifdef <имя> — если флаг или значение определены, то весь текст после этого условия до #endif или до #else будет выведен в итоговый файл #else — окончание фрагмента, регулируемого инструкцией #ifdef - последующий текст выводится, если условие в #ifdef не выполнено #endif — окончание фрагмента, регулируемого инструкцией #ifdef или #else #ifndef — аналогично #ifdef, однако проверяется, что флаг или значение не определены - весь текст после этого условия до #endif или до #else будет выведен в итоговый файл #include "<имя файла>" — в выходной файл вставляет текст из указанного файла (из той же папки) - если файл содержит инструкции, то он также будет обработан Поскольку в txt2gam, по умолчанию, для обозначения начала локации используется символ "#", то важно, чтобы имена локаций не назывались по имени инструкции (define, ifdef, и т.п.). Также не стоит включать инструкции в комментарии и строки, лучше их записывать на отдельных строчках. Доступны также и другие инструкции, о них можно узнать в документации или спросить на форуме. Для запуска текста игры на обработку нужно открыть консоль и набрать команду: gpp.exe <входной файл> -o <выходной файл> Другие ключи запуска можно узнать, запустив как: gpp.exe --help Пример использованияИсходный файл: #define HTML После обработки в выходной файл запишется: # Start Если же убрать инструкцию #define - например, заменив на #undef, то
после обработки в выходной файл запишется: # Start То есть текст, регулируемый инструкцией #ifdef, был удален из конечного результата. Прошу задавать вопросы на форуме. Ссылки |
- Чекпойнты - автоматическое сохранение
- Выбор случайных вариантов - тянем карты из колоды [1.0]
- Плавное изменение цвета фона [1.0]
- Игровое время [1.0]
- Плавная остановка музыки в игре
- Поиск кратчайшего пути между городами
- Мини-игра "Взорви зомби" - пример использования локации-счётчика
- Архив примеров кода - "28 в 1"
- BlackJack Lite [1.1]
- Пример реализации боя [1.0]
- Back Tutorial [1.0]
- HTML Sample [1.0]
- Гибкий плейлист [1.0]
- Использование Wiki разметки [1.1]
- Использование в HTML специальных символов [1.0]
- Оформление меню для игры [1.0]
- Сапер [1.1]
- Конь и ферзь [1.0]
- Жизнь 1.0
- Создание диалогов [1.1]
- Библиотечка дополняющая инвентарь 0.76