Важная информация

User Tag List

Показано с 1 по 4 из 4

Тема: PUZZNIC+Level Editor 2016

  1. #1
    Junior
    Регистрация
    31.03.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    19
    Благодарностей: 137
    Записей в дневнике
    3
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию PUZZNIC+Level Editor 2016

    PUZZNIC+LEVEL EDITOR 2016


    В качестве тренировки по изучению ассемблера, я решил сделать модификацию со встроенным редактором еще одной моей любимой игры из детства. На этот раз это будет PUZZNIC. Учитывая все пожелания по редактору, встроенному в игру TETЯIS-2, я отнесся к оформлению еще серьезнее, и перед стартом игры вывел краткую справку по клавишам в режиме рисунка.

    Вот игра с редактором + прокомментированный исходник на ассемблере в txt формате:
    Puzznic-2016.rar

    Общий вид редактора:


    Кратко о структуре кода:
    В процессе написания редактора я открыл для себя еще больше интересных особенностей и тонкостей ассемблера, поэтому в программе удалось реализовать редактирование всех самых важных параметров игры, о которых до этого не упоминалось даже в POKES'ах.
    Мой редактор работает в режиме DI и полностью автономный. В программе нет ни единого обращения к ПЗУ и все процедуры, включая вывод на экран символов и рисунков, собственного изобретения. (Это было сделано не столько из необходимости, сколько из тренировки для быстрого поиска координат и запоминания чрезстрочной структуры области экрана). Удалось найти рецепт принудительного затыкания зацикленной ноты из звуковых портов при внезапном выходе и запрете прерываний (правда я сам толком не понимаю как работает, но работает! Если кто-то поможет разобраться, будет хорошо).

    Описание редактора:


    Программа имеет три режима редактирования:

    - редактор поля игры с кубиками
    Он позволяет редактировать запакованные карты игрового поля в самой игре, поэтому сохранения не требуется.

    - редактор параметров игры
    Помимо установки бесконечной/конечной жизни всех параметров редактор позволяет выставлять требуемое значение времени для каждой группы уровней. (Между делом скажу, что POKES'ы для данной игры, гуляющие в интернете не совсем корректные и даже топорные. Остановка и запуск таймера игры у меня сделана иначе)

    - редактор "палочной пирамиды"

    Под этим загадочным словосочетанием, я подразумеваю сию штуковину:


    В редакторе изображена компактная версия данного "агрегата". Программа позволяет отметить нужными цветами любую "палочку". В редактор "палочек" я включил недокументированную особенность. Помимо синего, желтого и зеленого, палки можно промаркировать любыми цветами. (Правда карта актуальна будет только при старте, с последующим прохождением блока из 4-х экранов нижнего уровня).

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

    Клавиши управления:

    CAPS SHIFT - последовательное переключение режимов редактирования (базовое поле, параметры, палочная пирамидка)

    SYMBOL SHIFT - переключение и корректировка картинок кубиков (кубики с цифрами на кубики с загадочными символами и обратно). Но следует учесть, что при переключении набора картинок в игре, PUZZNIC меняет массивы графики местами в памяти. Поэтому поменяв рисунки кубиков в игре, они поменяются и в редакторе. Для этого существует данная функция.

    Z, X - последовательное перелистывание уровней от 1 (LEVEL 1-1-1) по 144 (LEVEL 8-8-4)

    S - горячий старт текущего уровня. Позволяет протестировать открытый, в данный момент уровень. Возврат можно осуществить либо игрой выбором пункта QUIT желтого меню, либо нажатием E в любой момент игры.

    O, P, Q, A - перемещение курсора (лево/право/верх/низ) по карте игры для последующей установки кубика.

    1...8 - установка кубиков c числами 1-8 (или соответствующими символами)

    0 - очистка клетки поля. Пустое пространство.

    9 - непроходимая стена. Помните, что для нормального функционирования уровня, кубики необходимо обложить стенами по кругу, как минимум в один слой. Иначе игра через не заткнутую щель заполонит игровое пространство синим фоном, в котором перемещаемые кубики увязнут. Это приведет к зависанию игры или невозможности закончить уровень.

    T, Y - установка горизонтального и вертикального лифта. В игре они одинакового цвета, но в редакторе для удобства они маркированы красным (вертикальный) и фиолетовым (горизонтальный) цветами. Также учтите особенность игры. В отдельно взятом уровне игра активирует только один лифт. Если на поле будет два и более лифтов, предпочтение отдается вертикальному. Остальные игнорируются. Чтобы выставить горизонтальный, необходимо, чтобы на поле он был только один. (Я не стал ставить лифтовую защиту, чтобы не утяжелять программу и так мало свободного места, надеюсь описания достаточно)

    В режиме редактирования параметров:

    Q, A - перемещение по пунктам меню
    O, P - уменьшить/увеличить или деактивировать значение выделенного параметра.

    При отключении таймера "палочек" или количества попыток (RETRY) в игре будет выводится прочерк, что означает остановку данного параметра (бесконечная жизнь)
    При деактивации таймера игры, циферки в редакторе окрашиваются в красный цвет, показывая, что отсчет времени отключен. При включении счетчика, табло снова загорится желтым цветом.

    В режиме редактирования палочной пирамидки:

    Q, A - перемещение по палочкам
    O, P - окрашивание палочки в нужный цвет.

    В игре используются только 3 цвета палочек:
    синие - по ним двигается курсор, и их можно выбирать. По всем остальным курсор не движется.
    желтые - не открытые
    зеленые - пройденные
    Помимо этого, палочки можно окрасить в оставшиеся цвета. Они также будут не выбираемыми из игры.

    SPACE - выход из редактора в начальное меню игры.

    Клавиша E позволяет прервать игру и вернуться в редактор, практически из любой фазы.

    Как обычно, желаю все творческих успехов и хорошо проведенных выходных.

  2. Эти 12 пользователя(ей) поблагодарили Yuri80 за это полезное сообщение:
    abelenki (30.04.2016), Alex Rider (01.05.2016), CityAceE (30.04.2016), creator (30.04.2016), Eagle (01.05.2016), Evgeny Muchkin (30.04.2016), Gamer999 (02.05.2016), helcril (01.05.2016), John North (01.05.2016), OMu4 (30.04.2016), Reobne (30.04.2016), TomCaT (02.05.2016)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    Guru Аватар для goodboy
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    9,450
    Благодарностей: 3168
    Записей в дневнике
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Yuri80 Посмотреть сообщение
    (Между делом скажу, что POKES'ы для данной игры, гуляющие в интернете не совсем корректные и даже топорные.
    они скорее всего для `польских` версий (с примитивным упаковщиком)
    Цитата Сообщение от Yuri80 Посмотреть сообщение
    Удалось найти рецепт принудительного затыкания зацикленной ноты из звуковых портов при внезапном выходе и запрете прерываний (правда я сам толком не понимаю как работает, но работает! Если кто-то поможет разобраться, будет хорошо).
    попробуй просто call 48016
    Последний раз редактировалось goodboy; 30.04.2016 в 09:46.

  5. #3
    Junior
    Регистрация
    31.03.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    19
    Благодарностей: 137
    Записей в дневнике
    3
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    попробуй просто call 48016
    Эту подпрограмму я видел, на основе экспериментов и создал данную программу, вынув необходимое. Именно, чтобы вызов в игру не делать.

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



    Так что вопрос закрыт.

  6. #4
    Guru Аватар для goodboy
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    9,450
    Благодарностей: 3168
    Записей в дневнике
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Yuri80 Посмотреть сообщение
    редактор поля игры с кубиками
    Он позволяет редактировать запакованные карты игрового поля в самой игре, поэтому сохранения не требуется.
    стоп, а как делиться созданными уровнями с-другими игроками ?

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Polo'Ed (Z80 Asm Editor)
    от Faster в разделе Утилиты
    Ответов: 2
    Последнее: 25.03.2014, 22:59
  2. 8col editor
    от alone в разделе Софт
    Ответов: 0
    Последнее: 10.10.2013, 17:07
  3. Bit-Editor
    от Doktor в разделе Утилиты
    Ответов: 12
    Последнее: 23.03.2012, 10:19
  4. Map & Sprite Editor v1.0
    от VELESOFT в разделе Графика
    Ответов: 13
    Последнее: 24.10.2008, 23:36
  5. Level 5
    от Arlekin в разделе Игры
    Ответов: 7
    Последнее: 29.09.2006, 15:24

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •