Создать игру, создание игр, конструктора игр, игровые движки, разработка игр, сделать игру
Приветствую Вас Гость · Вход · Регистрация  ·  Новые сообщения · Участники · Правила · Поиск · RSS
  • Страница 1 из 1
  • 1
Синтаксис GML в сравнении с Pascal
Скорп Дата: Понедельник, 07.05.2012, 21:15 | Сообщение # 1
( Разлагаюсь )
Просмотр профиля: Скорп

Сообщений: [936]
Game Maker Language. Синтаксис

Плюсы
По сути, GML является упрощенной версией нескольких языков программирования. К нему довольно близок Pascal, но отсечены ненужные корни.
Так, например, здешний синтаксис не требует точек и точек с запятой после каждой команды, а подпрограммы создаются с помощью {}, а не громоздких begin/end. Это позволяет быстро писать код, не отвлекаясь на то, что вам не нужно, не занимаясь ловлей багов, созданных непостановкой одного крошечного знака. Не считается ошибкой и не заданная в начале программы переменная.
Наглядный пример:
Pascal:
program p1;
var a:integer;b:real;c:string;
begin
a:=13;
b:=0.25;
c:='Текст';
end.

GML:
a=13 b=0.25 c='Текст'

Изменения величины переменной тоже стали проще. Достаточно написать a+=13, чтобы добавить 13 в ячейку переменной а, тогда как в случае с Pascal дело обстоит так: a:=a+13. Это экономит время при больших названиях переменных.

В чем подвох?
Пользуясь упрощенным синтаксисом, не стоит забывать о сортировке и упорядочивании кода. Иногда легко можно запутаться в коде при написании большого или даже компактного скрипта: фигурные скобки и остальные "знаки пунктуации" в один символ могут помешать нам разобраться в собственном коде, если дело было давно.
Наглядный пример:
if random(3)<=1 {if a=b {if b>20{c=3 d=100} else {c=2 d=300}} else {e=341 f=22}} //OH SHI~

Как упорядочить код?
Пользуйтесь той большой клавишей, что у вас есть над правым шифтом. Проще, говоря, разбивайте цельный код на разные строки: это позволить быстро менять код и находить баги.
Оставляйте комментарии. То, что находится за //, может вам здорово помочь. Иначе когда-нибудь можно столкнуться с проблемой разбора кода полугодичной давности. Кроме того, это полезно, если работаешь в команде или создаешь код для других: возможно, они все-таки уследят за ходом вашей мысли.
Наглядный пример:
if random(3)<=1 //В одном случае из трех
{
if a=b { //Если оружие героя равно оружию противника
if b>20{c=3 d=100} //И при этом здоровья меньше 20хп, патроны героя равны трем, противника - 100
else {c=2 d=300} //И при этом здоровья больше/равно 20хп, патроны героя равны двум, противника - 300

}
else {e=341 f=22} // Меняем кол-во пятен крови на лице ГГ и количество травинок в радиусе поражения
}

Что же в результате?
Мы имеем простой и эффективный скриптовый язык. Это действительно здорово, особенно когда времени мало, а энтузиазма хватает. Через некоторое время навыки могут отточиться до такой степени, что за написанием кода можно вообще не следить, создавая замысловатые конструкции на ходу. Удачи!


Рандомный текст.
Конструктор Дата: Понедельник, 07.05.2012, 22:20 | Сообщение # 2
( Не ленимся =) )
Просмотр профиля: Конструктор

Сообщений: [1854]
Quote (Scorpio)
a:=a+13



Работаю над Каваей.
Филипенко_Андрей Дата: Вторник, 08.05.2012, 06:36 | Сообщение # 3
( Идей много игр ноль))) )
Просмотр профиля: Филипенко_Андрей

Сообщений: [511]
Scorpio, Не плохо smile smile Хотя кто хотя бы поверхностно знает и паскаль и ГМЛ (как я) это понимает... И практической пользы я не вижу от статьи... Хотя может кому из новичков пригодится... dry
Скорп Дата: Вторник, 08.05.2012, 19:06 | Сообщение # 4
( Разлагаюсь )
Просмотр профиля: Скорп

Сообщений: [936]
Quote (Tusan)
Scorpio, Не плохо Хотя кто хотя бы поверхностно знает и паскаль и ГМЛ (как я) это понимает... И практической пользы я не вижу от статьи... Хотя может кому из новичков пригодится...

Да, разумеется, от статьи нет практической пользы для более-менее разбирающихся. Но она может пригодиться тому, кто знаком с паскалем и собирается работать в ГМ. Доработаю еще со временем, увеличу, постараюсь добавить и менее знакомые людям вещи.


Рандомный текст.
  • Страница 1 из 1
  • 1
Поиск:

При полном или частичном копировании материалов сайта ссылка на Make-Games.ru обязательна. Make-Games.ru © 2008 - 2024 Хостинг от uCoz
Топ Разработка игр