Модное
В новом движке, который вечно рефакторится, делал небольшую реорганизацию описания ячеек.
some zx-spectrum stuff
В новом движке, который вечно рефакторится, делал небольшую реорганизацию описания ячеек.
Неожиданно нашел как собирать старые исходники под новый sjasmplus - на нем стали шибко умные макросы, которые могут заменять текст внутри себя если имя входного параметра совпадает с сочетанием букв внутри макроса. Проблему решил добавлением перед параметрами макроса двойного подчеркивания: var -> __var.
К сожалению 48к памяти быстро закончились ( особенно много забирали полноэкранные тексты, которых хотелось добавить в игру побольше ), пришлось сделать фичекат и оставить в основном тот минимум решений без которого нельзя дойти до финала.
Добавлена тьма неизведанных областей. Теперь на экране показываются только те ячейки, в которых герой был или проходил рядом ( область вокруг героя шириной в 1 ячейку ). Пока не стал делать больше, но наверное дальше придется добавить либо параметр “светопроницаемости” либо экшн “do_light” и вызывать обработку через скрипт. Это позволит например включить активацию событий когда герой близко подойдет к ячейке %).
Осталось добавить 100499 предметов, описать взаимодействия между ними и игра будет готова! Хорошо что макросы позволили группировать однотипные ячейки в один файл, так например всю растительность - в grass.asm. Открытые-закрытые двери наверное тоже получится сгруппировать в один файл, а то как-то нехорошо - каждый предмет в своем asm-файле, подключать нудновато.
Из копипасты с различных источников, помощи форума codezx и небольшого собственного кода ( переход по пунктам меню ) спрограммил проигрыватель мелодий для очередного альбома AER.
Иногда хочется что-то накидать по-быстрому, поэкспериментировать.. Править для каждого такого случая main.asm в движке не совсем удобно. Как раз для таких случаев сделал заготовку-boilerplate для Visual Studio Code в качестве IDE.
Когда писал код движка, рассчитывал на то что игра будет только в snap-версиях, все же 2018 год, 21й век, эмуляторы спектрума сейчас где угодно есть… Поэтому если в игре настала смерть главного героя или он попал в безвыходное положение ( о чем игра любезно умолчит ), подразумевалось что игрок заново тыкает в файл “cell3326.sna” и эмулятор за секунду загружает новую игру.
Большинство позаимствовал из способов организации карты и предметов в LaserSquad.
[указатель на скрипт обработки]:
В качестве среды сборки использую Atom с плагинами:
Hello world!