FireURQ 2.0

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

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

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

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

2. Реализована переменная time, которую я почему-то забыл сделать ещё в самых первых версиях фурки и думал, что она есть. А её не было. А вот теперь — таки есть. Переменная time хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Удобно, если надо засечь время реакции игрока, например.

3. Новый оператор LOAD. Инициирует загрузку ранее сохранённой игры. Т.е. команда дублирует пункт меню «Загрузить сохранение». Не знаю зачем, но просили.

4. Изменилось поведение текстовых декораторов. Теперь свежесозданный текстовый декоратор не имеет по умолчанию дикую длину в 2000000000 пикселей, а масштабируется по ширине текста в нём. И его переменная decor_<имя>_width возвращает актуальную ширину текста (что можно использовать для измерения ширины строки текста на экране). Если присвоить decor_<имя>_width какое-нибудь отличное от нуля значение, то декоратор начнёт переносить текст по этой ширине. Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_<имя>_width ноль.

5. Радикально поменялся подход к сохранению игр. Теперь фурка сохраняет полное состояние игры на момент сохранения и способна вернуться ровно в ту точку кода, где была вызвана команда SAVE. Другими словами, после загрузки выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:

SAVE «В лесу» — вызовет интерфейс сохранения с выбором слота
SAVE «В лесу», 2 — запишет сохранение во второй слот
SAVE — просто сохранит игру в нулевой слот без вызова интерфейса

Старый синтаксис тоже поддерживается и работает ровно так же, как и раньше — после загрузки произойдёт переход на указанную локацию.

6. Добавлена предопределённая процедура _int, отбрасывающая дробную часть числа. Если вызвать, например PROC _int(3.14), то в переменной _result окажется 3.

7. В текстовых декораторах теперь можно отключать ссылки. Делается это с помощью переменной декоратора decor_<имя>_enabled, который по умолчанию равен 1. Если его поставить в 0, ссылки в декораторе отключатся. А если обратно в 1, то включатся снова. Ну и так далее.

8. Появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах. За положение меню относительно обычных кнопок, которые BTN, отвечает переменная bmenualign, для ссылок в основном тексте — lmenualign. Для декораторов используется переменная декоратора decor_<имя>_menualign.

Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), а вторая — выравнивание. Например, если написать
bmenualign = «RB»
то меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.
Список всех возможных значений этих переменных с иллюстрацией расположения можно увидеть на этой картинке:

menualign

А ещё я делал тест для этого запроса, а получилась интерактивная демка. Так что вот, качайте и экспериментируйте, там всё просто.

По умолчанию, для кнопок используется значение «TL», а для ссылок — «RL».
Кроме того, для указания расположения меню в скинах теперь используются те же значения.

9. При выполнении команд INPUT и ANYKEY теперь не работают никакие кнопки или ссылки. Ни так, ни в декораторах. Ибо нефиг.

10. Есть возможность задавать свой собственный курсор мыши. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной mousecursor. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной mousecursor пустое значение. (При этом декоратор тоже нужно уничтожить, иначе он останется на экране.)

Собственно, на этом всё. Пишите игры!

FireURQ 2.0: 6 комментариев

  1. За команду LOAD — отдельное спасибо от меня:)

  2. Звучит здорово, хоть я почти ничего не поняла :))

  3. Да здравствует Фаер, долгих ему лет плодотворной и радостной жизни!

  4. Это невероятно! Но факт! Спасибо, большое, как длина текстовой переменной в URQ!

Обсуждение закрыто.