Спрайтовый движок, #4

Недавно купил ПК. Теперь работать стало удобней, чем на планшете. По движку. Работа по нему по-тихоньку продвигается. Хочу сделать возможность писать для движка на двух языках: на LUA и диалекте URQL. Игра на URQL должна иметь расширение urq, а игра на LUA должна иметь расширение lua. Имя игры должно быть одно: game.
То есть либо game.lua либо game.urq. Загрузчик движка сам определит расширение и при urq игре создаст временной файл game.lua на его основе, который и будет проигрывать.


ОТЛИЧИЯ МОЕГО ДИАЛЕКТА URQ ЯЗЫКА



Мой диалект URQL будет отличаться от известного URQL тем, что:

  • 1. условия if then else обязательно должны заканчиваться end
  • 2. параметры команд от запятых должны отделяться пробелом: btn go, вперёд 

то есть нельзя писать будет btn go,вперёд

  • 3. команда инвентаря inv+ будет, скорее всего, отличаться дополнительным параметром [переменная: name var item]. Вот синтаксис её:

inv+ name item, name var item, quantity
inv+ название предмета, имя переменной, количество
inv+ Золотых монет, монет, 30

Первый параметр - текст названия предмета
Второй параметр - имя переменной предмета (может быть написан на русском или на английском). Обычно оно краткое для работы.
Третий параметр - количество предметов

Третий параметр необязательный, если предмет добавляется один
Второй параметр необязательный, если первым можно будет оперировать в программе: вычисления, проверки. Оперировать названием как переменной можно будет в том случае,

a) если в названии нет кавычек: газировка "Нарзан"
b) если в названии нет пробелов: Красная Шапка Короля

Для переменных могут подойти такие названия: Мешок, рукоятка, меч, рычаг, coins, gold ....

Команде inv- мне кажется достаточно иметь два параметра: переменную предмета и количество отнимаемых единиц


  • 4. отсутствие объединения команд &. В моём диалекте URQ команды нужно будет писать на новой строке


Например:
if gold > 5 then btn покупка, купить сок
btn покупка, купить конфету
btn покупка, купить цветок
end

В данном случае все команды от then до end будут выполняться при истинном условии








Комментарии

  1. А всякие декораторы будешь добавлять в синтаксис?

    ОтветитьУдалить
    Ответы
    1. Движок же спрайтовый, поэтому исходя из возможностей спрайтового модуля и буду действовать. Огорчу тем, что спрайтовый модуль не поддерживает avi и gif анимацию. Возможна будет только спрайтовая анимация. Графические изображения статичные и сейчас можно помещать разными способами и создавать клики по ним, но анимацию изображений пока еще не делал.

      Удалить

Отправить комментарий

Популярные сообщения