Быстрый фикс (FireURQ 2.1.1)

Как быстро выяснилось, в процессе переработки фулскрина я сломал работу фурки на старых и встроенных графических адаптерах, например, Intel GMA 3150.

Поэтому вот он, быстрый фикс. Если вдруг у вас фурка не запускается, скорее качайте свежий патч, а то прекрасные игры прекрасных Адженты и Веты пройдут (они уже проходят!) мимо вас.

FireURQ 2.1

По уже устоявшейся с прошлого раза традиции, спустя год два года и один месяц выходит новая версия фурки. Изменений довольно много, ибо была попытка в этом релизе перекроить данный конгломерат велосипедов и костылей с тем, чтобы на нём можно было выпускать игры в «большой свет», то есть на всякие стимы, бигфиши и иже с ними. Насколько получилось, судите сами.

Итак, изменения. Читать далее FireURQ 2.1

Вечная тема

Наткнулся на неплохую статью про то, «как всё-таки написать». Ну то есть перестать думать о написании (книг) и сделать. Неплохой мотивационный пинок, я считаю.

Существует только два состояния, в котором вы можете пребывать: человек, который пишет, или человек, который не пишет. Если ты пишешь, ты писатель. Если ты не пишешь, ты не писатель. «Стремящийся» — это просто бессмысленная романтизация состояния «хочу но не делаю». Все равно, что сказать: «Я стремлюсь поднять лист бумаги, упавший на пол». Ну так подними его, или нет. Не желаю слышать о твоем переполненном памперсе. Сними его или помалкивай.

Тут статья целиком

FireURQ 2.0

Итак, спустя ровно год и один месяц с предыдущего релиза, вышла FireURQ версии 2.0! Мы строили, строили и наконец построили. В этой версии есть несколько важных нововведений, а также исправление нескольких особенно гадких ошибок.

Скачать новую версию фурки

А вот и список нововведений:

1. Поддерживается вертикальный и горизонтальный флип (зеркальное отображение) для декораторов-картинок. Переменные decor_<имя>_flipx и decor_<имя>_flipy. Если они равны 1, то картинка отображается зеркально по оси x или y соответственно. Читать далее FireURQ 2.0

Шифрование квестов, нужно ли?

У меня на багтрекере есть вот такой запрос. Собственно, вопрос к сообществу. Нужно ли такое вот шифрование? В принципе не слишком трудно сделать так, что формат файла будет полностью свой и данные будут надёжно зашифрованы. (Ну как надёжно, кто очень захочет — сломает, конечно). Мне просто интересно, насколько такая фича востребована.

Аппетит во время еды

Начав с небольших доделок в версии 1.9.2, ввязался в переделку системы сохранений. Чтобы избавиться от одной важной кривизны классической урки — что при сохранении нужно указывать локацию, на которою после восстановления будет осуществлён переход, а текст, бывший на экране при сохранении полностью пропадает.

В общем, «не приспособлены мы, кролики, для лазанья». В смысле, что фурка писалась без задела на такую вот фичу, и переделок там… хм. Ну, в общем, непросто там всё.

Но интересно. Так что будем пилить дальше. 🙂

FireURQ 1.9.1

Вот, не прошло и года и снова релиз. Изменения — в основном багфикс и немножко синтаксического сахара.

Что стоит упоминания…

Переменная decor_<имя>_enabled для декораторов-кнопок. Позволяет делать кнопки неактивными. Как-то забыл я про неё в августе. Впрочем, никто не жаловался.

Кнопки теперь можно создавать без упоминания текста на них. Название локации и будет текстом на кнопке. Т.е. как-то так:

btn <локация>[, <надпись на кнопке>]

Если для локации указаны параметры или модификатор, то они в надпись на кнопке не попадут, разумеется.

Новые встроенные функции для работы со строками. Вызываются через proc, результат помещают в переменную _result, всё как обычно.

Функция _trim обрезает пробелы с начала и в конце строки, вызывается как proc _trim(str), где str — строка (строковая переменная или строка в кавычках).

Функция _scopy копирует кусочек строки, вызывается как proc _scopy(str, start[, len]), где str — строка, start — номер символа в строке, с которого начинать копировать и len — количество копируемых символов. Если параметр len опущен, то строка копируется до конца.

Например, если нужно взять первые 10 символов строки, то вызов proc _scopy(name, 1, 10) поместит в переменную _result 10 первых символов строки, содержавшейся в переменной name.

Одинарные и двойные кавычки теперь равнозначны. Т.е. можно задать строку с двойными кавычками внутри строки, определённой с помощью одинарных и наоборот. Например:

str = 'Бот назывался "Смердящий", и, как понял позже Валера, не случайно...'

В общем, это всё. Пишите игры.

FireURQ 1.9

Итак, вышла новая фурка. Скачать, как обычно, на вики. Главные нововведения — новые виды интерактивных декораторов и текстовый вывод текста в текстовый файл.

Итак.

Новые декораторы.

Декоратор «Область клика»

Это просто невидимый квадрат на экране, который ловит клики мышкой. Целевая локация — имя локации в кавычках. Модификаторы работают. Можно сделать выпадающее меню, переход или локальное действие.

decoradd <имя> (x, y[, z]) CLICKAREA <ширина>, <высота>, "<целевая локация>"

Декоратор «Кнопка-картинка»

decoradd <имя> (x, y[, z]) IMGBUTTON "<файл-текстура>", [<tx>, <ty>, <ширина>, 
<высота>,] "<целевая локация>"

файл-текстура — это полноцветный PNG с прозрачностью, например
tx, ty — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ
ширина и высота — это ширина и высота одного КАДРА
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая

Если tx, ty, ширина и высота не указаны, то вся текстура просто «пилится» на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы фурки. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.

Декоратор «Текстовая кнопка»

decoradd <имя> (x, y[, z]) TEXTBUTTON ["<рамка>", ] "<текст>", 
"<целевая локация>"

текст — надпись на кнопке
рамка — это название рамки, которая должна быть определена в скине. Это на случай, если захочется сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки.

Для всех новых типов декораторов существует переменная decor_<имя>_target, которая позволяет поменять целевую локацию. Для текстовой кнопки есть ещё переменная decor_<имя>_text, позволяющая менять надпись на кнопке.

Вывод в текстовый файл

Корвин давно просил меня сделать возможность вывода в текстовый файл. Так вот, я и сделал. Итак, в фурке есть несколько новых команд:

fprint, которая сокращается до fp и fprintln, которая сокращается (сюрприз!) до fpln. Работают они ровно также, как всем привычные p и pln, только текст выводится не на экран, а записывается в файл.

Файл задаётся с помощью переменной fp_filename. Это просто строка. Но есть нюанс. Чтобы предотвратить написание вирусов и всякой вредоносной фигни на фурке я решил серьёзно ограничить создаваемые файлы. Первое правило — все файлы должны иметь расширение TXT. Второе правило — никаких путей, все файлы создаются рядом с файлом игры. Т.е. если вы даже попробуете задать в переменной fp_filename что-нибудь вроде «C:WindowsSystem32cmd.exe», ей присвоится «cmd.txt» и лежать этот файл будет рядом с файлом игры.

Есть ещё одна новая команда:
newfile <имя файла>
Она присваивает переменной fp_filename имя файла и стирает этот файл. Это для того, чтобы быть увереным, что вы пишете в пустой файл. Если просто присвоить переменную fp_filename, то новые записи будут добавляться к уже существующему файлу.

Ну вот, собственно, и всё. Пишите игры.