3d форум по Blender

Другое => Программирование (любое) => Тема начата: Samovar от 19 Май 2017, 15:35:23

Название: Конструктор 2D игр Game Editor
Отправлено: Samovar от 19 Май 2017, 15:35:23
Ещё один бесплатный кроссплатформенный конструктор 2D игр
Ранее был платным, теперь исходный код открыт и доступен по лицензии GPLv3. Увы, не русифицирован...
Скриптовой язык - Си
http://game-editor.com (http://blender-3d.ru/forum/go.php?url=aHR0cDovL2dhbWUtZWRpdG9yLmNvbS9NYWluX1BhZ2U=)

(http://game-editor.com/wiki/skins/blender/it.png)


Game Editor trailer
https://youtu.be/l-BYay5lpsI (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly95b3V0dS5iZS9sLUJZYXk1bHBzSQ==)

Возможности
• Сетевые мультиплейрные игры
• Разработка на базе управляющих событий
• Влияние событий на других актёров
• Несколько уровней в одном файле
• Движение актёра по сложным картам (Поиск пути)
• Вспомогательные актёры
• Прозрачные актёры
• Бесконечные актёры
• Контроль Z-глубины
• Клонирование и удаление актёров
• Несколько анимаций для одного актёра
• Установка родительских актёров
• Создание путей актёра
• Полноэкранный и оконный режимы
• Настраиваемое разрешение и частота кадров
• Настраиваемый аудиоформат
• Контроль вида как актёров
• Инструмент рисования тайлами
• Глобальные и локальные скрипты
• Глобальные и локальные переменные актёра
• Периодические и случайные таймеры
• Создание автономных игр для Windows, Pocket PC, Handheld PC, GP2X, Смартфонов, Linux, Mac OS X, iPhone и iPad
• Загрузка файлов изображений из форматов jpeg, gif, png, bmp, pcx, tga, xpm, xcf, lbm и tif
• Загрузка музыкальных файлов из форматов Ogg Vorbis, wav, mid, mod, s3m, it и xm
• Загрузка звуковых файлов в форматах wav, voc, iff и 8SVX
• Постоянные многоуровневые уровни отмены/возврата

Генерируемые события
• Событие активации
• Конец анимации
• Столкновение
• Конец столкновения
• Создание актёра
• Уничтожение актёра
• Отрисовка актёра
• Клавиша нажата
• Клавиша отжата
• Клавиша мыши нажата
• Клавиша мыши отжата
• Мышь входит в область
• Мышь покидает область
• Конец пути
• Вне области видимости
• Таймер


Действия
• Изменение анимации
• Изменение направления движения анимации
• Изменение курсора
• Изменение родителя
• Изменение пути
• Изменение прозрачности
• Изменение Z-глубины
• Состояние столкновения
• Условное действие
• Создание актёра
• Создание таймера
• Уничтожение актёра
• Уничтожение таймера
• Отключение события
• Включение события
• Следование за мышью
• Перемещение
• Физическая реакция
• Проигрывание музыки
• Проигрывание звука
• Редактор скрипта
• Установка текста
• К предшествующему положению
• Состояние видимости


Поддерживаемые платформы
• Windows (95, 98, Me, NT, 2000, XP, Vista, 7)
• Pocket PC / Windows Mobile
• Handheld PC
• GP2X
• Windows Mobile-based Smartphone
• Linux
• Mac OS X
• iPhone
• iPad




Минимальные системные требования
Game Editor может быть установлен на системе, которая имеет следующие минимальные требования для его запуска:

Рекомендуемые системные требования
Game Editor работает лучше на:

Требования для Pocket PC, Handheld PC и Смартфона
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 26 Октябрь 2017, 20:40:55
Просто замечательный конструктор в плане простоты и функциональности...  но, увы не русифицирован, и не поддерживает кириллицу вообще...
...возможно  я переведу справку на русский со временем, но жаль не саму прогу :( ... так и не воткнул, как скачать и собрать...
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Striver от 26 Октябрь 2017, 22:14:33
Цитировать
так и не воткнул, как скачать и собрать...

Ну, скачать исходники, вроде, можно: http://svn.code.sf.net/p/game-editor/code/trunk/
makefile присутствует, так что, скорее всего под линух скомпилится.
файл readme.txt написан про Xcode, что-то для Apple developer'ов.
А под винду всё равно что-то на С++ компилировать - проще застрелиться.

Цитировать
но, увы не русифицирован, и не поддерживает кириллицу вообще...

По какому-то недоразумению использует первую версию SDL, а в ней не поддерживается UTF8. Скорее всего какую-нибудь cp1251 загнать в неё можно, но ковыряться придётся много.
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 27 Октябрь 2017, 10:44:32
Цитировать
Ну, скачать исходники, вроде, можно: [url]http://svn.code.sf.net/p/game-editor/code/trunk/[/url] ([url]http://blender-3d.ru/forum/go.php?url=aHR0cDovL3N2bi5jb2RlLnNmLm5ldC9wL2dhbWUtZWRpdG9yL2NvZGUvdHJ1bmsv[/url])

Благодарю за ответ. Прикольно... только не врублюсь как скачать... скачал TortoiseSVN... но нифига не понимаю как с ним работать и скачать эту кучу файлов... да и в программировании на Си и сборках прог из исходников я не силён...
Пока программа максимум - это перевести справку на русский... но потом, как переведу, я обязательно к тебе обращусь за помощью.
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 14 Февраль 2018, 17:51:26
Блин, ну что за нафиг? Только врубился в этот конструктор, начал потихоньку переводить справку на русский, и его сайт умер окончательно... :( :'(
Хорошо хоть исходники пока живые ( http://svn.code.sf.net/p/game-editor/code/trunk/ (http://blender-3d.ru/forum/go.php?url=aHR0cDovL3N2bi5jb2RlLnNmLm5ldC9wL2dhbWUtZWRpdG9yL2NvZGUvdHJ1bmsv) ), но я не шарю как собрать :( 

В общем, скачать Game-Editor можно тут: https://cloud.mail.ru/public/8T4b/y4fk2Xhuq (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly9jbG91ZC5tYWlsLnJ1L3B1YmxpYy84VDRiL3k0ZmsyWGh1cQ==)
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 15 Февраль 2018, 17:26:29
Кстати, кто на Linux, скачайте пожалуйста, и отпишитесь как работает (все три версии для разных ОС идут в одном архиве, просто распакуйте и запустите исполнимый файл для вашей ОС).
Интерактивные  уроки находятся в меню [Help].
Название: Re: Конструктор 2D игр Game Editor
Отправлено: sandman от 15 Февраль 2018, 21:04:01
Samovar,
Скачал, распаковал - вроде идёт... Ubuntu 16.04 64bit.
Название: Re: Конструктор 2D игр Game Editor
Отправлено: solonmaun от 16 Февраль 2018, 08:11:12
Работает, примеры запускаются, всё выглядит также как в Windows. Проверял на  Mint 17
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 16 Февраль 2018, 08:39:42
sandman и solonmaun, спасибо! Как считаете, справку к нему стоит перевести на русский, а то я начал было, но его сайт и форум умерли? Конструктор, конечно со своими недостатками и уступает Game Maker и Enigma (http://blender-3d.ru/forum/index.php/topic,1902.0.html) (отсутствует возможность масштабирования и поворота спрайта, нет физического движка, его надо писать самому и другое...) Но для простых 2D вполне годится...
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 16 Февраль 2018, 08:49:10
Сайт и форум сохранились на вебархиве.
Сайт: https://web.archive.org/web/20170603211322/http://game-editor.com/Main_Page (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTcwNjAzMjExMzIyL2h0dHA6Ly9nYW1lLWVkaXRvci5jb20vTWFpbl9QYWdl)
Форум: https://web.archive.org/web/20170602162355/http://game-editor.com:80/forum/ (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTcwNjAyMTYyMzU1L2h0dHA6Ly9nYW1lLWVkaXRvci5jb206ODAvZm9ydW0v)
Название: Re: Конструктор 2D игр Game Editor
Отправлено: sandman от 16 Февраль 2018, 18:28:32
Конечно пиши! Если время есть. Такой материал всегда полезен.
Название: Re: Конструктор 2D игр Game Editor
Отправлено: solonmaun от 17 Февраль 2018, 10:49:29
Цитировать
отсутствует возможность масштабирования и поворота спрайта
фигово конечно, но не смертельно. Многие сотни хороших игр обходились и без этого.
Цитировать
его сайт и форум умерли?
На сайте написано:
Project web is currently offline pending the final migration of its data to our new datacenter.
Переезжают наверное.

В википедии нашел такую ссылку https://sourceforge.net/projects/game-editor/files/
вроде всё что надо есть.
Цитировать
но, увы не русифицирован, и не поддерживает кириллицу вообще...
...возможно  я переведу справку на русский со временем, но жаль не саму прогу :( ... так и не воткнул, как скачать и собрать...
А почему бы собственно не связаться с автором, и не скинуть ему перевод, пусть сам вставляет его куда надо . А пошлёт, ну и ладно  ;D
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 17 Февраль 2018, 16:43:03
Спасибо. Тогда продолжу перевод... думаю, за месяц осилю... там самая сложная часть - это функции интерпретатора Си
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 08 Март 2018, 14:12:33
Цитировать
В википедии нашел такую ссылку [url]https://sourceforge.net/projects/game-editor/files/[/url] ([url]http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvZ2FtZS1lZGl0b3IvZmlsZXMv[/url])
вроде всё что надо есть.

Кстати, форум вернули: http://game-editor.com/forum/ (http://blender-3d.ru/forum/go.php?url=aHR0cDovL2dhbWUtZWRpdG9yLmNvbS9mb3J1bS8=)

Бета версия 1.4.1 там есть http://game-editor.com/forum/viewtopic.php?f=10&t=13001. (http://blender-3d.ru/forum/go.php?url=aHR0cDovL2dhbWUtZWRpdG9yLmNvbS9mb3J1bS92aWV3dG9waWMucGhwP2Y9MTAmYW1wO3Q9MTMwMDEu)
Или вот она: Game Editor 1.4.1 Beta (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly9jbG91ZC5tYWlsLnJ1L3B1YmxpYy9MMjNnL05kU1hHZ0VMZg==)
Увы, обратно несовместима c версией 1.4.0
Но зато более удобное редактирование и исправлены некоторые баги:

Added editor shortcuts.


Bug unparenting changes position of actors removed.
Bug wait for immediate action crash removed.
Bug directional_velocity not properly updated in draw fixed.
Bug PlaySound2 and PlayMusic2 gui interface not supporting infinite looping fixed.
Bug able to turn the view actor off removed.

Custom script editor size.
Faster deletion of actors (right click menu now can delete actors).
The missing 2 functions (getAnimIndex2, getAnimName2, DestroyTimer2, getclone2)
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 17 Март 2018, 21:54:37
Справочник редактора скриптов

Специальные актёры
столкновения: Актёр-столкновения, если актёр текущего события ("Event Actor") находится в состоянии события столкновения. (Имя в действиях: "Collide Actor")
родитель: Актёр-родитель актёра текущего события  ("Event Actor"), если существует. (Имя в действиях: "Parent Actor")
создатель: Актёр-создатель актёра текущего события ("Event Actor"), если актёр текущего события ("Event Actor") был создан в каком нибудь действии "Create Actor". (Имя в действиях: "Creator Actor")

Переменные
x: Это горизонтальная координата актёра. Позиция X задается относительно родителя. Если у актёра нет родителя, координата X будет относительно центра игры.

Синтаксис редактора скриптов:
Для текущего актёра:

x=x+5;
или
x += 5;
Для другого актёра:
MyActor.x += 5;

y: Это вертикальная координата актёра. Позиция Y задается относительно родителя. Если у актёра нет родителя, координата Y будет относительно центра игры.

Синтаксис редактора скриптов:
При событии нажатия клавиши
y=y+5;
или
y += 5;

xprevious: Предыдущее положение X актёра в последнем кадре. Эта переменная доступна только для чтения.

yprevious: Предыдущее положение Y актёра в последнем кадре. Эта переменная доступна только для чтения.

xscreen: Горизонтальное положение актёра в координатах экрана.

yscreen: Вертикальное положение актёра в координатах экрана.

xvelocity: Скорость актёра по оси X в пикселях/на кадр.

yvelocity: Скорость актёра по оси Y в пикселях/на кадр.

angle: Угол перемещения актёра (от 0 до 360, от положительной оси X, против часовой стрелки, в градусах).

directional_velocity: Скорость актёра в пикселях/на кадр в направлении angle (устанавливайте эту переменную актёру только тогда, когда используется angle)

r: Красный цвет (0 - 255)

g: Зеленый цвет (0 - 255)

b: Синий цвет (0 - 255)

transp: Прозрачность актёра (0.0 - 1.0).

animpos:  Текущий кадр анимации. Animpos изменяет только кадр вашей текущей анимации. Чтобы заменить анимацию без сброса текущего кадра, используйте опцию "без изменений" в действии изменить анимацию "Change Animation" (NO_CHANGE в скрипте).
 
animindex: Используйте animindex (отсчёт начинается с нуля) для нахождения текущей анимации актёра. Каждой анимации, которую имеет актёр, присовен уникальный индекс. (Таким образом, вы можете определить, какая анимация в данный момент запущена.)
Если ваш актёр имеет 3 анимации, тогда:
Первая анимация будет иметь animindex = 0
Вторая анимация будет иметь animindex = 1
Третья анимация будет иметь animindex = 2
Эта переменная доступна только для чтения.

nframes: Количество кадров в текущей анимации. Эта переменная доступна только для чтения.

width: Ширина спрайта текущей анимации. Эта переменная доступна только для чтения. 

height: Высота спрайта текущей анимации. Эта переменная доступна только для чтения. 

textNumber: Если актёр отображает текст, то можно задать текст числом.
Синтаксис редактора скриптов:
MyActor.textNumber=5;

text: Если актёр отображает текст, вы можете установить строку текста используя:
Синтаксис редактора скриптов:
strcpy (MyActor.text,"Hello World");
Максимальная длинна текста 255 символов.

name: Имя актёра. Эта переменная доступна только для чтения. 

clonename: Имя клона актёра (Составлено из имени актёра и следующим за ним через точку числовым индексом клона). Эта переменная доступна только для чтения.

cloneindex: Индекс клона актёра (всегда начинается с нуля). Если было создано 2 клона, то их индексы будут: myclone.0, myclone.1, ... Эта переменная доступна только для чтения.

frame: Счётчик кадров игры. Это глобальная переменная и доступна только для чтения. 

musicvol: Громкость музыки (0.0 - 1.0  громче). Это глобальная переменная. 
Синтаксис редактора скриптов:
musicvol=.7;

real_fps: Реальная частота кадров игры (кадров в секунду). Это глобальная переменная и доступна только для чтения. 

xmouse: Позиция мыши по оси х (горизонтальная) на экране (в координатах экрана). Это глобальная переменная и доступна только для чтения. 
Синтаксис редактора скриптов:
xscreen = xmouse;

ymouse: Позиция мыши по оси y (вертикальная) на экране (в координатах экрана). Это глобальная переменная и доступна только для чтения. 
Синтаксис редактора скриптов:
yscreen = ymouse;

---User Vars--- (---Переменные пользователя--- )
Переменные, которые были определены пользователем, будут показаны в этой области списка выбора переменных/функций.
MyVariable1
MyVariable2
MyVariable3
...
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 18 Март 2018, 19:51:30
Действия

ChangeAnimation: Заменяет анимацию и устанавливает её начальное (state) состояние (FORWARD - вперёд, BACKWARD - назад, STOPPED - остановлена, NO_CHANGE - без изменений).
Возвращает 1 при успехе, 0 при ошибке.

int ChangeAnimation(char *actorName, char *animationName, int state)

animationName: анимация cуществующая у актёра с именем имяАктёра.
actorName:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Родительский актёр для актёра текущего события, если существует.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- "Collide Actor": Актёр, который столкнулся с актёром текущего события.
- Любой актёр в игре.

Синтаксис редактора скриптов:
ChangeAnimaton("Event Actor","Animation_1",BACKWARD);

ChangeAnimationDirection: Изменяет состояние (state) текущей анимации (FORWARD - вперёд, BACKWARD - назад, STOPPED - остановлена).
Возвращает 1 при успехе, 0 при ошибке.

int ChangeAnimationDirection(char *actorName, int state)
actorName:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Родительский актёр для актёра текущего события, если существует.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- "Collide Actor": Актёр, который столкнулся с актёром текущего события.
- Любой актёр в игре.

Синтаксис редактора скриптов:
ChangeAnimatonDirection("Ball", FORWARD);

ChangeCursor: Изменяет курсор мыши над актёром.

int ChangeCursor(char *actorName, char *imgName, int nFramesH, int nFramesV, int hotSpotX, int hotSpotY)

imgName: имя файла изображения, включая полный путь относительно директории игры.
nFramesH: количество горизонтальных кадров в изображении.
nFramesV: количество вертикальных кадров в изображении.
hotSpotX: координата X горячей горячей точки курсора.
hotSpotY: координата Y горячей горячей точки курсора.
Возвращает 1 при успехе, 0 при ошибке.
actorName:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Родительский актёр для актёра текущего события, если существует.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- Любой актёр в игре.

Синтаксис редактора скриптов:
ChangeCursor("Event Actor", "Ball.png", 1, 1, 0, 0);

ChangeParent: Заменяет родителя актёра.

int ChangeParent(char *actorName, char *parentName)

parentName: имя какого либо актёра (включая "Event Actor", "Collide Actor", "Parent Actor", "Creator Actor" и "no parent" (без родителя)).
Возвращает 1 при успехе, 0 при ошибке.
actorName:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Родительский актёр для актёра текущего события, если существует.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- "Collide Actor": Актёр, который столкнулся с актёром текущего события.
- Любой актёр в игре.

Синтаксис редактора скриптов:
ChangeParent("MyActor", "Event Actor");

ChangePath: Заменяет путь актёра и устанавливает оси (X_AXIS - ось X, Y_AXIS - ось Y, BOTH_AXIS - обе оси).

int ChangePath(char *actorName, char *pathName, int axis)

pathName: имя любого пути (включая "no path" (без пути) и "random path" (случайный путь)).
Возвращает 1 при успехе, 0 при ошибке.
actorName:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Родительский актёр для актёра текущего события, если существует.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- "Collide Actor": Актёр, который столкнулся с актёром текущего события.
- Любой актёр в игре.

Синтаксис редактора скриптов:
ChangePath("MyActor", "path1", BOTH_AXIS);

ChangeTransparency: Изменяет прозрачность (transp) актёра (0.0 -непрозрачный, до 1.0 - прозрачный).
Возвращает 1 при успехе, 0 при ошибке.

int ChangeTransparency(char *actorName, double transp)

actorName:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Родительский актёр для актёра текущего события, если существует.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- "Collide Actor": Актёр, который столкнулся с актёром текущего события.
- Любой актёр в игре.

Синтаксис редактора скриптов:
ChangeTransparency("Event Actor", 0.64);

ChangeZDepth: Изменяет Z-глубину актёра.

int ChangeZDepth(char *actorName, double zdepth)

zdepth: Z-глубина от 0.0 до 1.0
Возвращает 1 при успехе, 0 при ошибке.
actorName:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Родительский актёр для актёра текущего события, если существует.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- "Collide Actor": Актёр, который столкнулся с актёром текущего события.
- Любой актёр в игре.

Синтаксис редактора скриптов:
ChangeZDepth("My Actor", 0.70);

CollisionState: Включение или отключение столкновения.
Возвращает 1 при успехе, 0 при ошибке.

int CollisionState(char *actorName, int state)

actorName:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Родительский актёр для актёра текущего события, если существует.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- "Collide Actor": Актёр, который столкнулся с актёром текущего события.
- Любой актёр в игре.
state: ENABLE - включено или DISABLE - отключено

Синтаксис редактора скриптов:
CollisionState("Event Actor", DISABLE);

CreateActor:  Создает нового актёра через скрипт.

Actor* CreateActor(char *creatorName, char *animationName, char *parentName, char *pathName, int xpos, int ypos, int absolutePosition)

creatorName: любое доступное имя для актёра.
animationName: анимация, действительная для имени актера или "no animation" (без анимации).
parentName: имя любого актёра (включая "Event Actor", "Collide Actor", "Parent Actor", "Creator Actor" и "no parent" (без родителя)).
pathName: имя любого пути (включая "no path" (без пути) и "random path" (случайный путь)).
x,y: начальное положение нового актёра.
absolutePosition: абсолютное положение (true - истина или false - ложь).
Возвращает актёра при успехе, недействтельного актёра (с индексом клона cloneindex = -1 и именем name = "") при ошибке.

Синтаксис редактора скриптов:
CreateActor("GamePaddle", "Paddle_Animation", "no parent", "no path", 0, 0, false);

CreateTimer: Создаёт новый таймер.
Возвращает 1 при успехе, 0 при ошибке.

int CreateTimer(char *actorName, char *timerName, int milliseconds)

timerName: имя нового таймера. (Имя нового таймера должно быть перед этим определено в панели Create new timer)
milliseconds: время нового таймера в милисекундах (1/1000 секунды).
actorName:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Родительский актёр для актёра текущего события, если существует.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- "Collide Actor": Актёр, который столкнулся с актёром текущего события.
- Любой актёр в игре.

Синтаксис редактора скриптов:
CreateTimer("Event Actor", "MyTimer", 2000)

DestroyActor: Уничтожает актёра в игре.

int DestroyActor(char *actorName)
Возвращает 1 при успехе, 0 при ошибке.

actorName:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Родительский актёр для актёра текущего события, если существует.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- "Collide Actor": Актёр, который столкнулся с актёром текущего события.
- Любой актёр в игре.

Синтаксис редактора скриптов:
DestroyActor("Ball.2"); //Уничтожает актёра с именем Ball.2
DestroyActor("Ball"); //Уничтожает всех актёров c именем Ball

DestroyTimer: Уничтожьте именованный таймер. Должен быть вызван в актёре, у которого есть активный таймер.

int DestroyTimer(char *timerName)
Возвращает 1 при успехе, 0 при ошибке.

timerName: имя таймера

Синтаксис редактора скриптов:
DestroyTimer("MyTimer");

EventDisable: Отключает событие актёра.

int EventDisable(char *actorName, unsigned long event)
Возвращает 1 при успехе, 0 при ошибке.

Следующие события могут быть отключены при помощи EventDisable:
EVENTMOUSEBUTTONDOWN - клавиша мыши нажата 
EVENTMOUSEBUTTONUP - клавиша мыши отпущена
EVENTMOUSEENTER - мышь входит в область
EVENTMOUSELEAVE - мышь покидает область
EVENTANIMATION - анимация
EVENTANIMATIONFINISH - конец анимации
EVENTPATHFINISH - конец пути
EVENTMOVEFINISH - конец движения
EVENTKEYDOWN - клавиша нажата
EVENTKEYUP - клавиша отпущена
EVENTTIMER - таймер
EVENTCOLLISION  - столкновение
EVENTCOLLISIONFINISH - конец столкновения
EVENTCREATE - создание
EVENTDESTROYACTOR - уничтожение
EVENTOUTOFVISION - вне поля видимости
EVENTACTIVATIONEVENT - событие активации
EVENTALL - все события

actorName:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Родительский актёр для актёра текущего события, если существует.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- "Collide Actor": Актёр, который столкнулся с актёром текущего события.
- Любой актёр в игре.

Синтаксис редактора скриптов:
EventDisable("Event Actor", EVENTMOUSEBUTTONDOWN);

EventEnable: Включает событие актёра.

int EventEnable(char *actorName, unsigned long event)

Следующие события могут быть включены при помощи EventEnable:
EVENTMOUSEBUTTONDOWN - клавиша мыши нажата 
EVENTMOUSEBUTTONUP - клавиша мыши отпущена
EVENTMOUSEENTER - мышь входит в область
EVENTMOUSELEAVE - мышь покидает область
EVENTANIMATION - анимация
EVENTANIMATIONFINISH - конец анимации
EVENTPATHFINISH - конец пути
EVENTMOVEFINISH - конец движения
EVENTKEYDOWN - клавиша нажата
EVENTKEYUP - клавиша отпущена
EVENTTIMER - таймер
EVENTCOLLISION  - столкновение
EVENTCOLLISIONFINISH - конец столкновения
EVENTCREATE - создание
EVENTDESTROYACTOR - уничтожение
EVENTOUTOFVISION - вне поля видимости
EVENTACTIVATIONEVENT - событие активации
EVENTALL - все события
Возвращает 1 при успехе, 0 при ошибке.

actorName:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Родительский актёр для актёра текущего события, если существует.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- "Collide Actor": Актёр, который столкнулся с актёром текущего события.
- Любой актёр в игре.

Синтаксис редактора скриптов:
EventEnable("Event Actor", EVENTMOUSEBUTTONDOWN);

FollowMouse: Заставляет актёра следовать за мышью по осям (X_AXIS - ось X, Y_AXIS - ось Y, BOTH_AXIS - обе оси X и Y, NONE_AXIS - без осей).

int FollowMouse(char *actorName, int axis)
Возвращает 1 при успехе, 0 при ошибке.

actorName:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Родительский актёр для актёра текущего события, если существует.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- "Collide Actor": Актёр, который столкнулся с актёром текущего события.
- Любой актёр в игре.

Синтаксис редактора скриптов:
FollowMouse("GamePaddle", X_AXIS);

getAccelerometer: Получение значений акселерометра (получение значений осей джойстика).

Vector getAccelerometer()

Vector - это структура со следующими переменными:

x: -1.0 до 1.0
y: -1.0 до 1.0
z: -1.0 до 1.0

Синтаксис редактора скриптов:
Vector v = getAccelerometer();
x = v.x;

MoveTo: Перемещение актёра в заданное положение с заданной скоростью.

int MoveTo(char *actorName, double x, double y, double velocity, char *relativeActor, char *avoidActor)
Возвращает 1 при успехе, 0 при ошибке.

velocity: Скорость перемещения.
actorName:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Родительский актёр для актёра текущего события, если существует.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- "Collide Actor": Актёр, который столкнулся с актёром текущего события.
- Любой актёр в игре.

x, y: положение для перемещения относительно relativeActor.

relativeActor: Относительный актёр

The Actor can be moved relative to the game center (absolute coordinate), relative to mouse or any Actor in the game.

Доступные значения:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Если существует, родительский актёр актёра текущего события.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- "Collide Actor": Актёр, который столкнулся с актёром текущего события.
- "Mouse Position": Перемещение актёра относительно текущей позиции мыши.
- "Game Center": Перемещение актёра относительно игровых координат.
- Любой актёр в игре.

avoidActor: Актёр которого надо обходить или избегать
Доступные значения:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Родительский актёр для актёра текущего события, если существует.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- "Collide Actor": Актёр, который столкнулся с актёром текущего события.
- Любой актёр в игре.

Примеры:

1) Перемещение актёра события вправо на 10 позиций (x = x + 10):
MoveTo("Collide Actor", 10, 0, 1000, "Event Actor", "");
(используем высокую скорость для мгновенного перемещения)

2) Перемещаем вид в позицию игрока (view.x = player.x; view.y = player.y;):
MoveTo("view", 0, 0, 1, "player", "");

3) Перемещаем игрока в положение мыши:
MoveTo("player", 0, 0, 1, "Mouse Position", "");

4) Перемещаем игрока в позицию мыши, обходя озёра (lakes) на поверхности:
MoveTo("player", 0, 0, 1, "Mouse Position", "lake");

PhysicalResponse: Выполняет физический отскок между участниками столкновения.

int PhysicalResponse(int moveType, int massType, double massEventActor, double massCollideActor, double eventVelocityMultiplier, double collideVelocityMultiplier)
Возвращает 1 при успехе, 0 при ошибке.

-moveType: тип перемещения MOVE_EVENT_ACTOR_ONLY - перемещать только актёра события, MOVE_COLLIDE_ACTOR_ONLY - перемещать только актёра столкновения, MOVE_BOTH_ACTORS - перемащать обоих актёров.
-massType: тип массы USE_CALCULATED_MASS - использовать рассчитанную массу, USE_SPECIFIED_MASS - использовать указанную массу.
-massEventActor, massCollideActor:
Когда massType = USE_CALCULATED_MASS, используйте это значение, чтобы вычислить множитель массы.
Когда massType = USE_SPECIFIED_MASS, используйте это значение, чтобы задать массу.
(Значения должны быть > 0.0)
eventVelocityMultiplier, collideVelocityMultiplier: Конечные множители скорости для актёров события и столкновения.

Синтаксис редактора скриптов:
PhysicalResponse(MOVE_EVENT_ACTOR_ONLY, USE_CALCULATED_MASS, 1.000000,1.000000, 1.000000, 1.000000);

PlayMusic: Проигрывает музыкальный файл.

int PlayMusic(char *soundPath, double volume, int loop)

-soundPath: Путь к звуковому файлу относительно директории игры
-volume: Громкость от 0.0 до 1.0
-loop: Сётчик повторов ( от 1 до 65000 или 0 для бесконечного цикла)
Возвращает 1 при успехе, 0 при ошибке.

Синтаксис редактора скриптов:
PlayMusic("data/MyMusic.wav", 1.0, 1);

PlayMusic2: Воспроизведение музыкального файла с возможностью определения приоритета музыки.

int PlayMusic2(char *soundPath, double volume, int loop, int priority)

-soundPath: Путь к звуковому файлу относительно директории игры
-volume: Громкость от 0.0 до 1.0
-loop: Сётчик повторов ( от 1 до 65000 или 0 для бесконечного цикла)
-priority: Приоритет HIGH_PRIORITY_MUSIC - высокий, MEDIUM_PRIORITY_MUSIC - средний или LOW_PRIORITY_MUSIC - низкий.
Возвращает 1 при успехе, 0 при ошибке.

Синтаксис редактора скриптов:
PlayMusic2("C:\\WINDOWS\\Media\\MyMusic2.wav", 1.000000, 1, HIGH_PRIORITY_MUSIC);

PlaySound: Проигрывает звуковой файл.

int PlaySound(char *soundPath, double volume, int loop)

-soundPath: Путь к звуковому файлу относительно директории игры
-volume: Громкость от 0.0 до 1.0
-loop: Сётчик повторов ( от 1 до 65000 или 0 для бесконечного цикла)
Возвращает номер выделенного канала при успехе, 0 при ошибке.

Синтаксис редактора скриптов:
PlaySound("data/tada.wav", 1.000000, 3);

PlaySound2: Воспроизведение звукового файла с возможностью панорамирования.

int PlaySound2(char *soundPath, double volume, int loop, double pan)

-soundPath: Путь к звуковому файлу относительно директории игры
-volume:  Громкость от 0.0 до 1.0
-pan: Панарамирование от -1.0 (полностью слева) до 1.0 (полностью справа)
-loop: Сётчик повторов ( от 1 до 65000 или 0 для бесконечного цикла)
Возвращает номер выделенного канала при успехе, 0 при ошибке.

Синтаксис редактора скриптов:
PlaySound2("data/tada.wav", 1.000000, 1, 0.000000);

ToAnteriorPosition: Перемещает актёра в положение в котором он был в предыдущем кадре.

int ToAnteriorPosition(char *actorName)
Возвращает 1 при успехе, 0 при ошибке.

actorName:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Родительский актёр для актёра текущего события, если существует.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- "Collide Actor": Актёр, который столкнулся с актёром текущего события.
- Любой актёр в игре.

Синтаксис редактора скриптов:
ToAnteriorPosition("Event Actor");

VisibilityState: Состояние видимости.

int VisibilityState(char *actorName, int state)

state: ENABLE - включено, DISABLE - отключено и DONT_DRAW_ONLY (Не рисовать, но разрешить события)
Возвращает 1 при успехе, 0 при ошибке.

actorName:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Родительский актёр для актёра текущего события, если существует.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- "Collide Actor": Актёр, который столкнулся с актёром текущего события.
- Любой актёр в игре.

Синтаксис редактора скриптов:
VisibilityState("GameGhost", ENABLE);

Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 18 Март 2018, 22:03:07
Функции рисования

Функции рисования могут быть использованы в действиях актёра типа холст (Canvas).
Координаты (x, y) относительны левого верхнего угла актёра.

draw_from: Рисует текущее изображение актёра на актёре типа холст (не работает с тайловыми или текстовыми актёрами)

void draw_from(const char *actorname, int x, int y, double scale)

actorname: Имя актёра текущий кадр которого будет нариован на актёре типа холст.
x: Координата по оси x для рисуемого изображения.
y: Координата по оси y для рисуемого изображения.
scale: Масштаб рисуемого изображения (больше чем 0.0)

Синтаксис редактора скриптов:
draw_from("player", 0, 1, 1.0);

setpen: Устанавливает перо для актёра события.

void setpen(int r, int g, int b, double transp, int pensize)

r: компонент красного  (0 - 255)
g: компонент зелёного  (0 - 255)
b: компонент синего  (0 - 255)
transp: прозрачность (0.0 - 1.0)
pensize: размер пера

Синтаксис редактора скриптов:
setpen(0, 255, 0, 0.0, 3); // устанавливаем цвет пера зелёным, без прозрачности, размером 3

moveto: Перемещает перо актёра события в координаты (x, y).

void moveto(int x, int y)

Синтаксис редактора скриптов/пример:
screen_to_actor(&xmouse,&ymouse) //получение координат мыши
moveto(xmouse,ymouse); //перемещение пера по координатам мыши

lineto: Рисует линию на актёре события к координатам (x, y), используя актуальное перо.

void lineto(int x, int y)

Синтаксис редактора скриптов:
setpen(255,255,255,0,3);
lineto (50,50);

Пример:
if (draw == 1)
{
screen_to_actor(&xmouse, &ymouse); //получаем координаты мыши на экране, и преобразуем их в координаты актёра
lineto(xmouse, ymouse); //рисуем линию к координатам мыши
}

putpixel: Рисует одиночный пиксель на актёре события в координатах (x, y), используя актуальное перо.

void putpixel(int x, int y)

Синтаксис редактора скриптов:
putpixel(0, 0);

erase:  Стирает всего актёра указанным цветом.

void erase(int r, int g, int b, double transp)

-r: компонент красного (0 - 255)
-g: компонент зелёного  (0 - 255)
-b: компонент синего  (0 - 255)
-transp: прозрачность (0.0 - 1.0)

Синтаксис редактора скриптов:
erase(0, 0, 0, .5);

screen_to_actor: Конвертирует из координат экрана в координаты актёра. (Используйте screen_to_actor(&xmouse, &ymouse); чтобы конвертировать координаты мыши в координаты текущего актёра. Например, эту функцию можно использовать для рисования в нужном месте на актёре типа холст.)

void screen_to_actor(int *x, int *y)

Синтаксис редактора скриптов:
screen_to_actor(&xmouse, &ymouse); //конвертируем координаты мыши в координаты текущего актёра.

actor_to_screen: Конвертирует координаты из актёра в координаты экрана.

void actor_to_screen(int *x, int *y)

Синтаксис редактора скриптов:
actor_to_screen(&xmouse, &ymouse); //ковертируем координаты из актёра (в данном случае мыши) в координаты экрана.

savecanvas: Сохраняет состояние актёра типа холст в память.

void savecanvas()

Синтаксис редактора скриптов:
savecanvas();

restorecanvas: Восстанавливает состояние актёра типа холст из памяти.

void restorecanvas()

Синтаксис редактора скриптов:
restorecanvas();
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 18 Март 2018, 22:27:03
Звуковые функции

Звуковые функции используют канал, возвращаемый PlayMusic, PlayMusic2, PlaySound, PlaySound2.

setPan: Устанавливает панораму звуков (не работает с музыкой).

channel: номер канала. Используйте 0 для воздействия на все звуковые каналы, кроме музыки 
pan: панорама от -1.0 (полностью слева) до 1.0 (полностью справа)
void setPan(int channel, double pan)

Синтаксис редактора скриптов:
setPan(channel, -1);

setVolume: Устанавливает громкость звука или музыки.

channel: номер канала. Используйте 0 для воздействия на все звуковые каналы, кроме музыки
volume: громкость от 0.0 до 1.0
void setVolume(int channel, double volume)

Синтаксис редактора скриптов:
setVolume(channel, .5);

stopSound: Остановка звука или музыки, воспроизводимой на указанном канале.

channel: номер канала. Используйте 0 для воздействия на все звуковые каналы, кроме музыки
void stopSound(int channel)

Синтаксис редактора скриптов:
stopSound(channel);
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 19 Март 2018, 04:10:30
Функции сохранения

Используйте saveVars и loadVars для сохранения и загрузки любых переменных в игре, таких как очки, текущие события и т.д. Чтобы использовать эти функции, вы должны использовать поле "Save group" (сохранить группу) на панели "Add New Variable" (кнопка Variables в редакторе скриптов).

saveVars: Сохраняет все переменные группы в указанный файл.

Файл будет сохранен в директории игры.

void saveVars(char *file, char *group)

Используйте saveVars для сохранения любых переменных в игре, таких как очки, текущие события и т.д.
Вы должны использовать поле "Save group" (сохранить группу) на панели "Add New Variable" (кнопка Variables в редакторе скриптов).

Синтаксис редактора скриптов:
saveVars("game.sav", "High Score");

loadVars: Загружает все группы переменных из указанного файла.

void loadVars(char *file, char *group)

Синтаксис редактора скриптов:
loadVars("game.sav", "High Score");

Пример:
1. Создайте переменную "score" (очки) и добавьте её в группу "High Score" (рекордные очки).
2. Создайте ещё две переменных: "lives" (количество жизней) и "energy" (энергия). Добавьте эти переменные в группу "Actor State" (состояние актёра).

Когда игрок погибает, используйте saveVars("game.sav", "High Score"), чтобы сохранить текущие очки игрока без сохранения состояния игрока.
Когда пользователь выходит из игры, используйте saveVars("game.sav", "Actor State"), чтобы сохранить текущее состояние игрока (количество жизней и энергию).

Примечание: различные группы переменных могут быть сохранены в одном и том же файле (game.sav).
Потом используйте loadVars("game.sav", "High Score"), и loadVars("game.sav", "Actor State") в нужной вам области в редакторе скриптов игры!
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 07 Апрель 2018, 12:04:06
Функции контроля игры

LoadGame: Загружает новую игру.

int LoadGame(char *gamePath)

gamePath: полный путь к игре или относительно текущей директории игры.
Возвращает 1 при успехе, 0 при ошибке.

Синтаксис редактора скриптов:
LoadGame("Level1.ged");

В редакторе скриптов будет загружен Level1.ged.
В вашей исполняемом файле игры будет загружен Level1.exe или Level1.dat.

ExitGame: Завершение игры и возвращение в систему.

int ExitGame()
Возвращает 1 при успехе, 0 при ошибке.

Синтаксис редактора скриптов:
ExitGame();

SuspendGame: Приостанавливает игру и прекращает принимать какие-либо события.

void SuspendGame()
Синтаксис редактора скриптов:
SuspendGame();

Показывает панель задач на Pocket PC.
Продолжает игру только в том случае, если игра попадает в фокус (когда пользователь нажимает на окно строки заголовка игры или использует Alt + Tab или если пользователь нажимает кнопку [Continue] ([Продолжить]) на Pocket PC, Handheld PC и Smartphone).

PauseGameOff: Продолжает игру, которая была приостановлена ​​функцией PauseGameOn (). См. Пример ниже в PauseGameOn.

void PauseGameOff()

Пример кода редактора скриптов:
1) Когда пользователь хочет приостановить игру, создайте свой «pauseActor»: "Paused - Click To Resume" ("Приостановлено - нажмите Возобновить").
2) В событии Create Actor (Создать актёра) у актёра «pauseActor» добавьте действие  Script Editor (редактор скриптов) со следующим кодом:
PauseGameOn();
3) В событии  Mouse Button Down (Кнопка мыши нажата) добавьте действие Script Editor (редактор скриптов) со следующим кодом:
PauseGameOff();
DestroyActor("Event Actor");

PauseGameOn: Приостанавливает игру, но продолжает получать события клавиатуры и мыши. Это делается для того, чтобы вы смогли вызвать PauseGameOff () в случае нажатия клавиатуры или действий мыши.

void PauseGameOn()
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 12 Апрель 2018, 15:31:44
Функции клавиатуры

getKeyText: Возвращает текстовое описание клавиши.

char *getKeyText(int key)

Синтаксис редактора скриптов:
int keyCode = getLastKey(); //получить последнюю нажатую клавишу.
strcpy(myactor.text, getKeyText(keyCode)); //получить текст клавиши (getKeyText) и скопировать его (strcpy) в myactor.

getLastKey: Возвращает последнюю нажатую клавишу.

int getLastKey()

Синтаксис редактора скриптов:
int selectedKey = getLastKey(); //"selectedKey" - это переменная, используемая для хранения последней нажатой клавиши с использованием функции getLastKey (). Можно использовать любое имя переменной.
Примечание. Функция getLastKet () вернет последнюю нажатую клавишу после переназначения.
Таким образом, если пользователь нажимает клавишу "T", и вы предварительно переназначили клавишу "T" на клавишу "вправо", getLastKey () вернет клавишу "вправо".

Чтобы избежать такого поведения, как в этом примере, вам нужно удалить переназначение, используя:
remapKey(KEY_t, KEY_t);

remapKey: Переназначает одну клавишу (fromKey) на другую клавишу (toKey) (Определяемые пользователем клавиши). Используйте эту функцию, чтобы переназначить любые клавиши.

void remapKey(int fromKey, int toKey)

Все переназначения будут удалены после использования LoadGame()

Синтаксис редактора скриптов:

Для примера:
Актёр в игре стреляет после нажатия на KEY_RCTRL.
Если вы хотите, чтобы ваш пользователь мог изменить эту клавишу управления в настройках игры,
То используете событие KeyDown и поместите в редактор скриптов следующее:
remapKey(getLastKey(), KEY_RCTRL); //KEY_RCTRL это клавиша которая будет переназначена.

Теперь клавиша, нажатая пользователем, будет перенаправлена ​​на KEY_CTRL. Функция remapKey () позволяет сохранить исходную игровую клавишу по умолчанию.

GetKeyState: Возвращает массив состояния клавиатуры.

char *GetKeyState()

Синтаксис редактора скриптов:
char *key = GetKeyState(); // "key" - это переменная, используемая для хранения функции GetKeyState (). Можно использовать любое имя переменной.

Пример:
Когда клавиша влево или вправо нажата в событии «Draw Actor», следующий код перемещаёт актёра влево или вправо.
1) Создайте актёра
2) Добавте ему событие "Draw actor"
3) Добавте код в редакторе скриптов

Код:
char *key = GetKeyState(); //Получаем полное состояние клавиатуры

if(key[KEY_RIGHT] == 1) //Проверка, нажата ли клавиша вправо
{
x = x + 5; //Перемещаем актёра вправо
}

if(key[KEY_LEFT] == 1) //Проверка, нажата ли клавиша влево
{
x = x - 5; //Перемещаем актёра влево
}

Доступные записи клавиш:
KEY_BACKSPACE
KEY_TAB
KEY_CLEAR
KEY_RETURN
KEY_PAUSE
KEY_ESCAPE
KEY_SPACE
KEY_EXCLAIM
KEY_QUOTEDBL
KEY_HASH
KEY_DOLLAR
KEY_AMPERSAND
KEY_QUOTE
KEY_LEFTPAREN
KEY_RIGHTPAREN
KEY_ASTERISK
KEY_PLUS
KEY_COMMA
KEY_MINUS
KEY_PERIOD
KEY_SLASH
KEY_0
KEY_1
KEY_2
KEY_3
KEY_4
KEY_5
KEY_6
KEY_7
KEY_8
KEY_9
KEY_COLON
KEY_SEMICOLON
KEY_LESS
KEY_EQUALS
KEY_GREATER
KEY_QUESTION
KEY_AT
KEY_LEFTBRACKET
KEY_BACKSLASH
KEY_RIGHTBRACKET
KEY_CARET
KEY_UNDERSCORE
KEY_BACKQUOTE
KEY_a
KEY_b
KEY_c
KEY_d
KEY_e
KEY_f
KEY_g
KEY_h
KEY_i
KEY_j
KEY_k
KEY_l
KEY_m
KEY_n
KEY_o
KEY_p
KEY_q
KEY_r
KEY_s
KEY_t
KEY_u
KEY_v
KEY_w
KEY_x
KEY_y
KEY_z
KEY_PAD_0
KEY_PAD_1
KEY_PAD_2
KEY_PAD_3
KEY_PAD_4
KEY_PAD_5
KEY_PAD_6
KEY_PAD_7
KEY_PAD_8
KEY_PAD_9
KEY_PAD_PERIOD
KEY_PAD_DIVIDE
KEY_PAD_MULTIPLY
KEY_PAD_MINUS
KEY_PAD_PLUS
KEY_PAD_ENTER
KEY_PAD_EQUALS
KEY_UP
KEY_DOWN
KEY_RIGHT
KEY_LEFT
KEY_INSERT
KEY_HOME
KEY_END
KEY_PAGEUP
KEY_PAGEDOWN
KEY_F1
KEY_F2
KEY_F3
KEY_F4
KEY_F5
KEY_F6
KEY_F7
KEY_F8
KEY_F9
KEY_F10
KEY_F11
KEY_(http://blender-3d.ru/forum/hotkey/f12.jpg) (http://blender-3d.ru/forum/go.php?url=aHR0cDovLyJtb2R1bGVzL3NlY3Rpb25zL2luZGV4LnBocD9vcD12aWV3YXJ0aWNsZSZhcnRpZD0yNCI=)
KEY_F13
KEY_F14
KEY_F15
KEY_NUMLOCK
KEY_CAPSLOCK
KEY_SCROLLOCK
KEY_RSHIFT
KEY_LSHIFT
KEY_RCTRL
KEY_LCTRL
KEY_RALT
KEY_LALT
KEY_RMETA
KEY_LMETA
KEY_LWINDOWS
KEY_RWINDOWS
KEY_ALT_GR
KEY_HELP
KEY_PRINT
KEY_SYSREQ
KEY_BREAK
KEY_MENU
KEY_MAC_POWER
KEY_EURO
KEY_POCKET_UP
KEY_POCKET_DOWN
KEY_POCKET_LEFT
KEY_POCKET_RIGHT
KEY_POCKET_A
KEY_POCKET_B
KEY_POCKET_C
KEY_POCKET_START
KEY_POCKET_AUX1
KEY_POCKET_AUX2
KEY_POCKET_AUX3
KEY_POCKET_AUX4
KEY_POCKET_AUX5
KEY_POCKET_AUX6
KEY_POCKET_AUX7
KEY_POCKET_AUX8
KEY_GP2X_BUTTON_UP
KEY_GP2X_BUTTON_DOWN
KEY_GP2X_BUTTON_LEFT
KEY_GP2X_BUTTON_RIGHT
KEY_GP2X_BUTTON_UPLEFT
KEY_GP2X_BUTTON_UPRIGHT
KEY_GP2X_BUTTON_DOWNLEFT
KEY_GP2X_BUTTON_DOWNRIGHT
KEY_GP2X_BUTTON_CLICK
KEY_GP2X_BUTTON_A
KEY_GP2X_BUTTON_B
KEY_GP2X_BUTTON_X
KEY_GP2X_BUTTON_Y
KEY_GP2X_BUTTON_L
KEY_GP2X_BUTTON_R
KEY_GP2X_BUTTON_START
KEY_GP2X_BUTTON_SELECT
KEY_GP2X_BUTTON_VOLUP
KEY_GP2X_BUTTON_VOLDOWN
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 21 Апрель 2018, 19:57:57
Вспомогательные функции

ActorCount: Возвращает число актёров с именем actorName.

actorName:
- Любой актёр в игре.

Синтаксис редактора скриптов:
( ActorCount("metalBlock1") == 1)\\общее количество в настоящее время активных актёров ==1.

Загрузите демонстрационный пример breakout (http://blender-3d.ru/forum/go.php?url=aHR0cDovL2dhbWUtZWRpdG9yLmNvbS9nYW1lcy9icmVha291dC56aXA=)  и перейдите в событие DestroyActor (уничтожение актёра) metalBlock1, чтобы видеть эту функцию в действии.

CollisionFree: Проверяет, свободна ли позиция (x, y) для актёра с именем аctorName. Возвращает 1, если нет столкновения, в противном случае возвращает 0.

int CollisionFree(char *actorName, int x, int y)

actorName:
- "Event Actor": Актёр, который получает текущее событие.
- "Parent Actor": Если существует, родительский актёр актёра текущего события.
- "Creator Actor": Создатель актёра текущего события, если актёр текущего события был создан в каком-либо действии «Create Actor».
- "Collide Actor": Актёр, который столкнулся с актёром текущего события.
- Любой актёр в игре.

Синтаксис редактора скриптов:
if (CollisionFree("Event Actor", x, y+5)) y=y+5; //В редакторе скриптов для события нажатия клавиши (KeyDown) проверяем, не возникает столкновения перед перемещением актера на 5 пикселей.

SendActivationEvent: Отправляет событие активации (ActivationEvent) клону актёра.

int SendActivationEvent(char *cloneName)
Возвращает 1 при успехе, 0 при ошибке.

cloneName: имя_актёра.индекс_клона (Например: ship.1, ship.2, ...)

SendActivationEvent("ship.1"); //отправляем ActivationEvent (событие активации) на клон актёра ship с номером индекса 1.

radtodeg:  Преобразует угол (angle) из радиан в градусы.

double radtodeg(double angle)

degtorad: Преобразует угол (angle) из градусов в радианы.

double degtorad(double angle)

Синтаксис редактора скриптов:
myactor.textNumber= degtorad(angle);

direction: Возвращает направление между точками (x1, y1) и (x2, y2) (в градусах от 0 до 360, от положительной оси x, против часовой стрелки).

double direction(double x1, double y1, double x2, double y2)

Синтаксис редактора скриптов:
textNumber= direction(x, y, player.x, player.y);

distance: Возвращает расстояние между точками (x1, y1) и (x2, y2).

double distance(double x1, double y1, double x2, double y2)

Синтаксис редактора скриптов:
textNumber= distance(x, y, player.x, player.y);

getAllActorsInCollision: Возвращает массив из актёров, который включает всех актёров столкнувшихся с актёром cloneName,  или NULL, если нет столкновений.
Количество актёров будет возвращено в  nActors.

Actor *getAllActorsInCollision(char *cloneName, int *nActors)

cloneName: имя_актёра.индекс_клона (Например: ship.1, ship.2, ...), "Event Actor", "Collide Actor", "Parent Actor" или "Creator Actor"
Возвращаемый массив будет действителен до следующего вызова getAllActorsInCollision.
Возвращаемый массив доступен только для чтения.

Синтаксис редактора скриптов:
getAllActorsInCollision("Event Actor",&num);

Например, чтобы сделать "Event Actor" родительским для всех столкнувшихся с ним актёров:

int n;
Actor *actors;
actors = getAllActorsInCollision("Event Actor", &n);
if(actors)
{
int i;
for(i = 0; i < n; i++)
{
ChangeParent(actors.clonename, "Event Actor");
}
}

getAnimIndex: Получает индекс анимации для текущего Event Actor.
Возвращает индекс анимации при успехе, -1 при ошибке.

int getAnimIndex(char *animName)

animName: действительное имя анимации для текущего Event Actor.

Синтаксис редактора скриптов:
getAnimIndex("palette");

Пример:
1. Создайте два актёра: "number" и "myImages".
2. Сделайте актёра с именем "number" текстовым. Используйте "0" в его тексте.
3. Назначьте 3 анимации актёру «myImages».
4. У актёра «myImages» добавте событие: Create Actor -> Script Editor
5. Введите следующий код:
number.textNumber= getAnimIndex("myAnimation2");

getAnimName: Возвращает имя анимации текущего Event Actor.
Возвращает имя анимации при успехе, "" при ошибке.

char *getAnimName(int animIndex)

animIndex: индекс анимации в Event Actor.

Синтаксис редактора скриптов:
strcpy(text, getAnimName(0));

getactor: Возвращает актёра в позиции (x,y) (в координатах игры) при успехе.  При ошибке возвращает недействительного актёра (с индексом клона = -1 и именем = "").

Actor *getactor(int x, int y)

Синтаксис редактора скриптов:
Actor *MyActor;
MyActor=getactor(x,y);

getclone: Возвращает актёра с именем cloneName.

Actor *getclone(char *cloneName)

cloneName: имя_актёра.индекс_клона
(Например: ship.1, ship.2, ...)
Возвращает актёра при успехе. При ошибке возвращает недействительного актёра (с индексом клона = -1 и именем = "").

getTime: Получает системные дату и время.

stTime getTime();

stTime - это структура со следующими полями:
sec: Секунды после минуты (0 - 59)
min: Минуты после часа (0 - 59)
hour: Часы с полуночи (0 - 23)
mday: День месяца (1 - 31)
mon: Месяц (1 - 12; Январь = 1)
year: Год (текущий год)
wday: День недели (0 - 6; Воскресенье = 0)
yday: День года (0 - 365)
sec_utc: Количество секунд, прошедших с полуночи (00:00:00), 1 января 1970 года (согласованное универсальное время)

Синтаксис редактора скриптов:
stTime t = getTime();
textNumber = t.sec; //показать секунды
Скачайте пример здесь (http://blender-3d.ru/forum/go.php?url=aHR0cDovL2dhbWUtZWRpdG9yLmNvbS9leGFtcGxlcy9nZXR0aW1lLnppcA==).
 
openUrl: Открывает веб-страницу.

Синтаксис редактора скриптов:
openUrl("http://game-editor.com (http://blender-3d.ru/forum/go.php?url=aHR0cDovL2dhbWUtZWRpdG9yLmNvbQ==)");

round: Возвращает значение аргумента arg, округленное до ближайшего целого. Однако число возвращается как значение с плавающей запятой. Значения точно между двумя значениями, такими как 3.5, округляются к большему.

double round(double arg);

max: Возвращает большее из двух значений.

double max(double a, double b)

min: Возвращает меньшее из двух значений.

double min(double a, double b)

rand: Генерирует последовательность псевдослучайных чисел. Каждый раз, когда вызывается, возвращается число от нуля до max.

double rand (double max);

vectoradd: Добавляет вектор2 (угол2, величина2) в вектор1 (угол1, величина1) и возвращает результат в вектор1 (углы в градусах).

void vectoradd(double *angle1, double *magnitude1, double angle2, double magnitude2).
Скачайте пример здесь (http://blender-3d.ru/forum/go.php?url=aHR0cDovL2dhbWUtZWRpdG9yLmNvbS9leGFtcGxlcy92ZWN0b3JhZGQuemlw).
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 21 Апрель 2018, 20:09:22
Функции идентификации устройства

getHardwareID: Возвращает строку, которая может однозначно идентифицировать устройство.

Используйте эту функцию, чтобы получить строку, которая может однозначно идентифицировать Pocket PC, Handheld PC или смартфон.
Эта строка может использоваться в некоторых службах регистрации для защиты вашей игры от незаконного копирования.
Некоторые защищенные смартфоны требуют, чтобы вы подписали цифровую подпись своей игры и использовали эту функцию.

Возвращает пустую строку для настольных ПК, или при возникновении какой-либо ошибки.

char *getHardwareID();

Синтаксис редактора скриптов:
strcpy(text, getHardwareID());

getOwner: Возвращает имя владельца устройства.

Используйте эту функцию, чтобы получить имя владельца Pocket PC, Handheld PC или смартфона.
Возвращает пустую строку для настольных ПК, или при возникновении какой-либо ошибки.

char *getOwner();

Синтаксис редактора скриптов:
strcpy(text, getOwner());
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 23 Апрель 2018, 17:53:05
Стандартные функции языка Си

Для получения более подробной информации обратитесь к  Справочнику программиста Си (http://blender-3d.ru/forum/go.php?url=aHR0cDovL2NwcC5jb20ucnUvc2hpbGR0X3Nwcl9wb19jL2luZGV4Lmh0bWw=)

abs: Возвращает абсолютное (положительное) значение числа.

int abs(int num);

Синтаксис редактора скриптов:
int num =-5;
myactor.textNumber=abs(num);

acos: Возвращает арккосинус аргумента arg.

double acos (double arg);

Примечание. Аргумент acos () должен находиться в диапазоне от -1 до 1: в противном случае произойдет ошибка диапазона.

asin: Возвращает арксинус аргумента arg.
double asin (double arg);

Примечание. Аргумент asin() должен находиться в диапазоне от -1 до 1: в противном случае произойдет ошибка диапазона.

atan: Возвращает арктангенс аргумента arg.

double atan (double arg);

atan2: Возвращает арктангенс из a/b. Таким образом можно определить квадрант, в котором находится угол.

double atan2(double a, double b);

atof: Преобразует строку, на которую указывает str, в значение double.

double atof (const char *str);

Строка должна содержать допустимое число с плавающей точкой. В противном случае возвращаемое значение не определено. После числа может следовать любой символ, который не может быть частью допустимого числа с плавающей точкой. Имеются в виду пробелы, символы табуляции и пустой строки, знаки препинания (но не точки) и символы, отличные от буквы "Е" или "е". Это значит, что, если функция atof() вызывается с аргументом "100.00HELLO", будет возвращено значение 100.00.

atoi: Преобразует строку, на которую указывает str, в значение int.

int atoi (const char * str);

Cтрока должна содержать допустимое целое число. В противном случае возвращаемое значение не определено. После числа может следовать любой символ, который не может быть частью целого числа. Имеются в виду пробелы, символы табуляции и пустой строки, знаки препинания и буквы. Это значит, что, если функция atoi() вызывается с аргументом "123.23", будет возвращено целое значение 123, а подстрока ".23" будет проигнорирована.

atol: Преобразует строку, на которую указывает str, в значение long int.

long atol (const char * str);

Строка должна содержать допустимое целое число. В противном случае возвращаемое значение не определено. После числа может следовать любой символ, который не может быть частью целого числа. Имеются в виду пробелы, символы табуляции и пустой строки, знаки препинания и буквы. Это значит, что, если функция atol() вызывается с аргументом "123.23", будет возвращено длинное целое значение 123L, а подстрока ".23" будет проигнорирована.

calloc: Выделяет память, размер которой равен значению выражения num * size. (Для получения более подробной информации обратитесь к Справочнику программиста Си.)

void * calloc(size_t num, size_t size);

calloc() выделяет память, размер которой равен значению выражения num * size, т.е. память, достаточную для размещения массива, содержащего num объектов размером size. Все биты распределенной памяти инициализируются нулями. Функция calloc() возвращает указатель на первый байт выделенной области памяти. Если для удовлетворения запроса нет достаточного объема памяти, возвращается нулевой указатель. Перед попыткой использовать распределенную память важно проверить, что возвращаемое значение не равно нулю.

ceil: Возвращает наименьшее целое (представленное в виде значения с плавающей точкой), которое больше значения аргумента num или равно ему.

double ceil (double num);

Например, если num равно 3.02, функция ceil() вернет значение 4.0, а при num, равном -3.02, - значение -3.
Синтаксис редактора скриптов:
myactor.textNumber= ceil(3.02);

cos: Возвращает косинус аргумента arg. Значение аргумента arg должно быть в радианах.

double cos (double arg);

cosh: Возвращает гиперболический косинус аргумента arg.

double cosh (double arg);

fclose: Закрывает файл, связанный с потоком stream.

fclose(FILE * stream);

В случае успеха возвращается ноль; в противном случае возвращается EOF. Попытка закрыть файлы, который был закрыт ранее, вызовет ошибку. Удаление носителя памяти перед закрытием файла также приведет к ошибке, как и отсутствие свободного пространства на диске.

feof: Проверяет, достигнут ли конец файла, связанного с потоком  stream.

int feof(FILE * stream);

Если указатель текущей позиции файла установлен на конец файла, возвращается ненулевое значение; в противном случае возвращается нуль. При достижении конца файла последующие операции чтения будут возвращать значение EOF до тех пор, пока не будет вызвана функция rewind() или пока указатель текущей позиции файла не будет установлен на новую позицию с помощью функции fseek(). Функция feof() особенно полезна при работе с двоичными файлами, поскольку маркер конца файла также является полноценным двоичным целым.

fgetc: Возвращает символ, взятый из входного потока stream и находящийся сразу после текущей позиции, а также увеличивает указатель текущей позиции файла.

int fgetc(FILE *stream);

Этот символ читается как значение типа unsigned char, преобразованное в целое. При достижении конца файла функция fgetc() возвращает значение EOF. Ho поскольку значение EOF является действительным целым значением, при работе с двоичными файлами для обнаружения конца файла необходимо использовать функцию feof(). Если функция fgetc() обнаруживает ошибку, она возвращает значение EOF.

fgets: Читает из входного потока stream не более num-1 символов и помещает их в массив символов, адресуемый указателем str.

char *fgets(char *str, int num, FILE *stream);

При успешном выполнении функция fgets() возвращает значение str, а в случае сбоя - нулевой указатель.
Символы читаются до тех пор, пока не будет прочитан символ новой строки или значение EOF, либо пока не будет достигнут заданный предел. По завершении чтения символов сразу же за последним из них размещается нулевой символ. Символ новой строки сохраняется и становится частью массива, адресуемого элементом str.

floor:  Возвращает наибольшее целое (представленное в виде значения с плавающей точкой), которое меньше значения аргумента num или равно ему.

double floor(double num);

Например, при num, равном 3.02, функция floor() вернет значение 3.0, а при num, равном -3.02, - значение -3.0.
Синтаксис редактора скриптов:
myactor.textNumber= floor(3.02);

fmod: Возвращает остаток от деления аргументов a/b.

double fmod(double a, double b);

fopen:  Открывает файл, имя которого задается параметром fname, и возвращает указатель на поток, связанный с этим файлом. Типы операций, которые разрешено выполнять с файлом, определяются параметром mode. Путь к файлу должен быть указан относительно директории игры.

FILE *fopen(const char *fname, const char *mode)

Строка символов, которая будет играть роль имени реального файла, должна определять его имя, допустимое в данной операционной системе. Эта строка может включать спецификацию пути, если среда поддерживает такую возможность.
Синтаксис редактора скриптов:

Скрипт для чтения текста из файла:
char textArray[10][256]; //Max 10 text of 255 characters
int nText = 0; //Number of texts read
void readText(char * fileName)
{
char line[256];
FILE *arq = fopen(fileName, "r"); if(arq)
{
while(fgets(line, 255, arq) && nText < 10)
{
if(strlen(line) > 0) //Dont put empty lines
{
strcpy(textArray[nText], line);
nText++;
}
}
}
}

fprintf: Выводит в поток, адресуемый параметром fp, значения аргументов, составляющих список аргументов, в соответствии с заданной строкой формата fmt.

int fprintf(FILE * fp,const char *fmt, ...);

fputc: Записывает символ ch в текущую позицию потока stream, a затем увеличивает указатель текущей позиции файла.

fputc( int ch, FILE *stream);

Хотя на практике при объявлении символа ch он всегда имеет тип int, функцией fputc() тип символа преобразуется в unsigned char. Поскольку в момент вызова символьный аргумент преобразуется к целому типу, в качестве аргументов обычно можно использовать и символьные переменные. При использовании целого значения, старший байт попросту отбрасывается. Значением, возвращаемым функцией fputc(), является значение записанного символа. При возникновении ошибки возвращается значение EOF. Если файл открыт для выполнения операций в двоичном режиме, значение EOF тоже может оказаться символом. Поэтому, чтобы определить, возникла ли ошибка на самом деле, в таких случаях придется использовать функцию ferror().

fputs: Записывает в заданный поток stream содержимое строки, адресуемой указателем str. При этом завершающий нулевой символ (т.е. символ конца строки ('0')) не записывается. При успешном выполнении функция fputs() возвращает неотрицательное значение, а при неудачном - значение EOF.

fputs(const char * str, FILE *stream);

fread: Читает из потока, адресуемого указателем stream, count объектов длиной size байт и размещает их в массиве buf. Затем указатель текущей позиции файла увеличивается на число, равное прочитанному количеству символов. Функция fread() возвращает число реально прочитанных элементов. Если оказалось, что прочитано меньше элементов, чем требовалось при вызове, значит, либо произошла ошибка при выполнении операции, либо был достигнут конец файла. Определить, что именно произошло, можно с помощью функции feof() или ferror().

size_t fread(void *buf, size_t size, size_t count, FILE * stream);

free: Возвращает в динамически распределяемую область памяти блок памяти, адресуемый указателем ptr, после чего эта память становится доступной для выделения в будущем. Обязательно следите, чтобы free() вызывалась только с указателем, который был ранее получен в результате вызова одной из системных функций динамического распределения. Использование недопустимого указателя при вызове, скорее всего, приведет к разрушению механизма управления памятью и, возможно, вызовет крах системы.

void free(void *ptr);

fscanf: Читает информацию из потока, заданного указателем stream. Функция fscanf() возвращает количество аргументов, которым действительно присвоены значения. Это число не включает опущенные поля. Если возвращаемое функцией значение равно EOF, то это свидетельствует о том, что до выполнения первого присваивания произошел сбой.

int fscanf(FILE *stream, const char *format, ...);

fseek: Устанавливает указатель текущей позиции файла, связанного с потоком stream, в соответствии со значениями начала отсчета origin и смещения offset. Назначение этой функции - поддерживать операции ввода/вывода с произвольным доступом. Параметр offset равен количеству байтов, на которые будет смещен внутренний указатель файла относительно начала отсчета, заданного параметром origin. Возвращаемое значение нуля означает, что fseek () преуспел. Значение, отличное от нуля, указывает на сбой. В общем случае fseek () следует использовать только с двоичными файлами.

int fseek(FILE *stream, long int offset, int origin);

ftell: Возвращает текущее значение указателя позиции файла для заданного потока. В случае двоичных потоков это значение равно количеству байтов, которые отделяют указатель от начала файла. Для текстовых потоков возвращаемое значение может не иметь определенной интерпретации за исключением случая, когда оно является аргументом функции fseek().

long int ftell (FILE *stream);

При возникновении ошибки функция ftell() возвращает значение -1.

fwrite: Записывает в поток, адресуемый указателем stream, count объектов длиной size байтов каждый из массива символов, адресуемого указателем buf. Затем указатель текущей позиции файла перемещается вперед на записанное количество символов.

size_t fwrite(const void *buf, size_t size, size_t count, FILE *stream);

Возвращает число реально записанных элементов, которое при успешном выполнении функции будет равно числу затребованных элементов. Если же элементов записано меньше, чем указано при вызове, произошла ошибка.

log: Возвращает значение натурального логарифма аргумента a. Если значение аргумента a отрицательно, возникает ошибка из-за выхода за пределы области допустимых значений (ошибка из-за нарушения области определения). Если же значение a равно нулю, возможна ошибка из-за выхода за пределы диапазона представляемых значений.

double log(double a);

log10: Возвращает значение логарифма по основанию 10  аргумента a. Если значение аргумента a отрицательно, возникает ошибка из-за выхода за пределы области допустимых значений (ошибка из-за нарушения области определения). Если же значение a равно нулю, возможна ошибка из-за выхода за пределы диапазона представляемых значений.

double log10(double a);

malloc: Возвращает указатель на первый байт области памяти размером size, которая была выделена из динамически распределяемой области памяти. Если для удовлетворения запроса в динамически распределяемой области памяти нет достаточного объема памяти, возвращается нулевой указатель. Перед попыткой использовать выделенную память всегда проверяйте, что возвращаемое значение не является нулевым указателем. Попытка использовать нулевой указатель обычно приводит к полному отказу системы.

void *malloc(size_t size);

memcmp: Сравнивает первые count символов массивов, адресуемых параметрами buf1 и buf2. Возвращает целое значение.

int memcmp(const void *buf1, const void *buf2, size_t count);

memcpy: Копирует count символов из массива, адресуемого параметром from, в массив, адресуемый параметром to. Если заданные массивы перекрываются, поведение функции memcopy() не определено. Возвращает значение указателя  на to.

void *memcpy(void *to, const void *from, size_t count);

memmove: Копирует count символов из массива, адресуемого параметром  from, в массив, адресуемый параметром to. Если заданные массивы перекрываются, процесс копирования проходит корректно, т.е. соответствующее содержимое будет помещено в массив to, но содержимое массива  from при этом изменится. Возвращает значение указателя на to.

void *memmove(void *to, const void * from, size_t count);

memset: Копирует младший байт параметра ch в первые count символов массива, адресуемого параметром dest. Функция возвращает значение указателя dest. Чаще всего функция memset() используется для инициализации области памяти некоторым известным значением.

void *memset( void *dest, int ch, size_t count );

pow: Возвращает значение аргумента base, возведенное в степень ехр. Если значение аргумента base равно нулю, а ехр меньше или равно нулю, возможна ошибка из-за выхода за пределы области допустимых значений (ошибка из-за нарушения области определения). Она произойдет также в том случае, если base отрицательно, а ехр не является целым числом. При этом также может возникнуть ошибка из-за выхода за пределы диапазона представимых значений.

double pow(double base, double exp);

realloc: Изменяет размер блока ранее выделенной памяти, адресуемой указателем ptr в соответствии с заданным размером size. Значение параметра size может быть больше или меньше, чем перераспределяемая область. Функция realloc() возвращает указатель на блок памяти, по скольку не исключена необходимость перемещения этого блока (например при увеличении размера блока памяти). В этом случае содержимое старого блока (до size байтов) копируется в новый блок.

void *realloc(void *ptr, size_t size);

sign: Возвращает значение аргумента arg, округленное до ближайшего целого. Однако возвращаемое число представлено в формате с плавающей точкой.

double sign(double arg);

sin: Возвращает синус аргумента arg. Значение аргумента arg должно быть указано в радианах.

double sin(double arg);

sinh: Возвращает гиперболический синус аргумента arg.

double sinh (double arg);

sprintf: Используйте sprintf для смешивания фиксированного текста (например, «Hello ...») с текстом в переменных (например, имя актера, число, ...).

sprintf(youractor.text, "Hello %s", stringvar);

sqrt: Возвращает значение квадратного корня от аргумента num. Если значение аргумента отрицательно, возникает ошибка из-за выхода за пределы области допустимых значений (ошибка из-за нарушения области определения).

double sqrt (double num);

sscanf: Читает данные из массива, на который указывает buf.

int sscanf(const char *buf, const char *format,...);
strcat: Присоединяет к строке str1 копию строки str2 и завершает строку str1 нулевым символом. Конечный нуль-символ, первоначально завершающий строку str1, перезаписывается первым символом строки str2. Строка str2 при этом не изменяется. Если заданные массивы перекрываются, поведение функции strcat() не определено.

char *strcat(char *str1, const char *str2);

strchr: Возвращает указатель на первое вхождение младшего байта параметра ch в строку str. Если указанный символ не найден, возвращается нулевой указатель.

char *strchr(const char *str, int ch);

strcmp: Сравнивает в лексикографическом порядке две строки и возвращает целое значение, зависящее от результата сравнения.

int strcmp(const char *str1, const char *str2);

strcpy: Копирует содержимое строки str2 в строку str1. Параметр str2 должен указывать на строку с завершающим нулевым символом. Функция strcpy() возвращает значение указателя str1. 

char *strcpy(char *str1, const char *str2);

strlen: Возвращает длину строки с нулевым завершением, на которую указывает str. Нулевой символ не засчитывается.

size_t strlen(const char *str);

strncat: Добавляет исходную строку s2 в строку назначения s1, но не более n символов.

char *strncat(char * s1, const char *s2, size_t n)

strncmp: Сравнивает в лексикографическом порядке не более count символов из двух строк, заканчивающихся символом конца строки, и возвращает целое значение, зависящее от результата сравнения.

char *strncmp(char *str1, const char *str2, size_t count);

strncpy: Копирует не более count символов из строки, адресуемой параметром str2, в массив, адресуемый параметром str1. Параметр str2 должен указывать на строку, заканчивающуюся символом конца строки.

char * strncpy(char *str1, const char *str2, size_t count);

tan: Возвращает тангенс аргумента arg. Значение arg должно быть указано в радианах.

double tan (double arg);

tanh: Возвращает гиперболический тангенс аргумента arg.

double tanh(double arg);
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 23 Апрель 2018, 18:09:14
Так это выглядит в Game Editor.
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 23 Апрель 2018, 20:39:11
Скрипты в Game Editor

Программирование реализовано с использованием скриптового языка, совместимого с языком Си, и обеспечивает высокий уровень разработки и гибкости.
Скрипты создаются с помощью действия Script Editor.
Редактор скриптов поддерживает подcветку синтаксиса и автоматический отступ для увеличения производительности. Для тех, кто знаком с другими языками программирования, редактор скриптов является эквивалентом интегрированной среды разработки или IDE.
Все действия актёра можно вызывать из скриптов.

(https://web.archive.org/web/20170706155356im_/http://game-editor.com:80/docs/images/actionscript.gif)

Заголовок редактора скриптов:

Строка заголовка редактора скриптов показывает имя актера, чей текущий скрипт в данный момент создаётся. Она также отображает событие, которое вызывает действия скрипта. Функция " L " справа в строке заголовка скрипта, указывает на строку, которая в данный момент редактируется в окне ввода скрипта.

(https://web.archive.org/web/20170706155356im_/http://game-editor.com:80/docs/images/scripteditor_titlebar.gif)

Окно ввода редактора скриптов:

Серая прямоугольная зона - это окно ввода скрипта. Пишите скрипт здесь.

(https://web.archive.org/web/20170706155356im_/http://game-editor.com:80/docs/images/scripteditor_inputarea.gif)

Меню редактора скриптов:

Строка меню редактора скриптов расположена в нижней части области ввода редактора скриптов. Строка меню редактора скриптов предлагает ряд опций для доступа к функциям, доступным для использования в редакторе скриптов. Объяснение каждого пункта меню выглядит следующим образом:

actors (актёры):

(https://web.archive.org/web/20170706155356im_/http://game-editor.com:80/docs/images/script_editor_menubar.gif)

Отображает список всех актёров, созданных в игре. Щелчок левой кнопкой мыши на имени актёра вставит имя актёра в окно ввода редактора скриптов.

variables/functions (переменные/функции):

(https://web.archive.org/web/20170706155356im_/http://game-editor.com:80/docs/images/script_editor_menubar_variables_functions.gif)

Отображает список всех переменных и функций, доступных для использования в окне ввода редактора скриптов. Для удобства использования щелчок левой кнопкой мыши автоматически вставляет функцию или переменную в окно ввода редактора скриптов.
При выборе действия или функции из списка "variables/functions" в строке меню редактора скриптов появляется соответствующая панель.

Variables (Переменные):

(https://web.archive.org/web/20170706155356im_/http://game-editor.com:80/docs/images/script_editor_menubar_variables.gif)

Думайте о переменной как о контейнере, который содержит значение. Выбор этого параметра позволяет создавать как одиночные переменные, так и массивы переменных для использования в игре.
При нажатии этой кнопки откроется панель пользовательских переменных, которая позволяет добавлять, редактировать или удалять переменные. Все атрибуты переменной, за исключением имени переменной, можно редактировать.

(https://web.archive.org/web/20170706155356im_/http://game-editor.com:80/docs/images/uservariables.gif)

Add (Добавить):

(https://web.archive.org/web/20170706155356im_/http://game-editor.com:80/docs/images/createvariable.gif)

- Name (Имя): Имя переменной. Имена переменных должны начинаться с символов и включать в себя символы, цифры или "_". Имена втроенных функций и имена встроенных переменных использовать нельзя. (Пример: MyNewActor можно, но CreateActor нельзя).
- Variable type (Тип переменной): Integer (целая), real (вещественная) (с плавающей точкой) или string (строковая) (макимум 255 символов).
- Variable visibility (Видимость переменной): Глобальная переменная или переменная актёра. Переменные актёра расширяют структуру актёра. Таким образом, доступ к переменной актёра можно получить так же, как и к встроенным переменным актёра. Например, используйте локальную переменнуе актёра, чтобы задать нечто вроде " силы игрока".
- Array (Массив): С помощью этого параметра можно создать глобальный массив переменных. Индексы переменных массива будут между нулем и размером Size.
- Save group (Сохранить в группу): Если вы хотите сохранять или загружать эту переменную с помощью функций saveVars и loadVars, задайте группу, в которой эта переменная будет сохранена.

Global Code (Глобальный код):

(https://web.archive.org/web/20170706155356im_/http://game-editor.com:80/docs/images/script_editor_menubar_global.gif)

Используйте редактор глобального кода, чтобы свободно добавлять любой код на языке Си (массивы, структуры и функции). Для того, чтобы эффективно использовать редактор глобального кода, вашие познания в языке Си сослужат вам хорошую службу.
Глобальный код может быть доступен из любого скрипта.

(https://web.archive.org/web/20170706155356im_/http://game-editor.com:80/docs/images/globalcode.gif)

После ввода кода, введите его название и нажмите на кнопку "Add" ("Добавить").
Редактируйте код, выбрав его в списке "Choose" ("Выбрать"). После внесения необходимых изменений нажмите на кнопку "Add" ("Добавить").
Используйте кнопку "Remove" ("Удалить") для удаления скрипта глобального кода.
Используйте всплывающую панель "File" ("Файл") для сохранения или загрузки скриптов глобального кода.

Примечание: изменение любых локальных переменных актёра (x, y, xscreen, yscreen,...) не влияет на глобальный код.
Чтобы использовать специальных актёров - создателя или родителя, поместите в редактор скриптов вызов (как комментарий: // creator)
 
File (Файл):

(https://web.archive.org/web/20170706155356im_/http://game-editor.com:80/docs/images/script_editor_menubar_file.gif)

Опция File дает возможность загрузить ранее сохраненный скрипт, или сохранить текущий скрипт во внешнем файле.
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 23 Апрель 2018, 21:19:36
Как работает Game Editor

Основная концепция:

Game Editor основан на событиях и действиях. Это позволяет довольно интуитивно создавать игры. Представьте, что в вашем распоряжении имеется большой стол. Теперь разместите на столе объекты, которые наполняют вашу игру. На этом столе вы можете увидеть всю свою игру в целом, и иметь четкое представление о размещении объектов. Это Game Editor; это ваш большой стол, ваша рабочая область, где вы управляете объектами визуально.

Прежде чем приступить к использованию Game Editor, необходимо понять концепции актёров, анимаций, событий и действий.

Актёры:

Актёры - это ваши объекты, персонажи вашей игры. Каждый актёр может иметь связанную с ним группу анимаций, может быть отслежен другими актёрами, следовать по пути, быть прозрачным, быть текстом, и прочим.

Анимации:

Анимация - это статическое изображение или группа последовательности изображений, которая представляет актёра на экране. Из концепции, можно заметить, что не все анимации на самом деле "анимированы".

События и Действия:

Событие (Event) - это то, что происходит во время игры, например, когда пользователь нажимает клавишу или щелкает мышью, или когда актёр сталкивается с другим.

Действие (Action) - это то, что должно произойти в ответ на событие. Например, когда актёр сталкивается с ракетой, должен быть создан взрыв. Game Editor имеет набор определенных действий, и любые события могут запускать одно или несколько действий.
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 23 Апрель 2018, 22:15:15

Интерфейс Game Editor

Основной экран редактора

После того как вы закроете панель приветствия, вы увидите экран редактора Game Editor.

(https://web.archive.org/web/20131130053915im_/http://game-editor.com:80/docs/images/mainscreeneditor.jpg)

Это область, где вы будете создавать свою игру. Представлена как бумага в клеточку.
Размеры и цвет сетки можно изменить, выбрав в меню "Config - > Preferences".

Белый прямоугольник - это особый актёр, называемый "view actor".
Vew actor - это на самом деле камера, отображающая часть вашей игры, которая должна быть показана в данный момент.
Он имеет те же атрибуты, как и у созданного пользователем актёра, за исключением того, что не может иметь анимаций, связанных с ним.

Размер vew actor - это разрешение экрана вашей игры: 1024X768, 240 X 320 и т.д.
Разрешение экрана можно изменить с помощью меню "Config -> Game Properties".

Панель управления актёром

С помощью панели управления актёром вы можете контролировать поведение актёра. Рассмотрим эту панель позже.

(https://web.archive.org/web/20131130053915im_/http://game-editor.com:80/docs/images/actorcontrol.gif)
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 11 Май 2018, 15:55:52

Главное меню редактора

File (Файл)

(https://web.archive.org/web/20160617230233im_/http://game-editor.com:80/docs/images/mainmenu.gif)
(https://web.archive.org/web/20160617230233im_/http://game-editor.com:80/docs/images/filemenu.gif)

New Game (Новая игра): Очищает текущую игру и начинает разработку новой игры.

Load (Загрузить): Очищает текущую игру и загружает ранее сохраненную игру.

Merge (Объединить): Объединяет текущую игру с загружаемой игрой. (Если загружаемая игра имеет актёра с таким же имением как у актёра в текущей игре, то результат объединения будет непредсказуем.)

Save (Сохранить): Сохраняет изменения, внесённые в текущий файл.

Save As (Сохранить как): Сохраняет текущую игру в иное местоположение или с другим именем файла.

При сохранении игры, все анимации, шрифты и звуки перемещаются в папку, которая автоматически создаётся с именем "data" ("данные"). Эта папка находится в каталоге игры.

Export (Экспорт): Создаёт исполняемую игру и упаковывает данные.


Game Editor экспортирует игру в виде одного исполняемого файла или одного файла данных (iPhone/iPad).
Этот файл включает в себя все данные игры (анимации, звуки,...).

(https://web.archive.org/web/20160617230233im_/http://game-editor.com:80/docs/images/exportgame.gif)

Доступные типы экспорта (Export Types):

Windows Executable: Исполняемый файл Windows (совместимый).
Поддерживаемые версии Windows:
- Windows 95, 98, Me, NT, 2000, 2003, XP, Vista, 7

Минимальные системные требования:
- Windows 95
- 32 Мб ОЗУ
- x86 совместимый процецссор (Pentium, AMD, ...)
- 200 МГц
Pocket PC / Handheld PC Executable: Исполняемый файл, совместимый с Pocket PC, Handheld PC, Windows Mobile (2003, 2005, 6, 6.5).

Windows Mobile-based Smartphone Executable: Исполняемый файл для смартфонов.

Поддерживаемые версии Pocket PC, Handheld PC и смартфонов:
- Windows Mobile (2003, 2005, 6, 6.5)
- ARM процессоры (ARM, StrongARM, XScale, OMAP, PXA, ...)
- Только полноэкранный режим
- Ogg Vorbis, wav, mod, s3m, it и xm музыкальные файлы

Минимальные системные требования:
- Pocket PC 2002
- Менее 10 Мб оперативной памяти (нужно тестировать игру)
- ARM процессоры (ARM, StrongARM, XScale, OMAP, PXA, ...)
- 200 МГц

Рекомендуется карта расширения MMC / SD

Linux Executable: Исполняемый файл Linux. 

GP2X Executable: Исполняемый файл GP2X.

Поддерживаемые версии GP2X:
- Firmware 2.0.0 и поздние
- Только полноэкранный режим
- Ogg Vorbis, wav, mod, s3m, it и xm музыкальные файлы

Game Data Only (iPhone, iPad или уровень игры без исполняемого движка): Экспортирует только файл данных без игрового движка. Этот формат используется, если ваша игра состоит из нескольких игровых файлов или для игр на iPhone и iPad.

Чтобы создавать игры для iPhone или iPad, сначала нужно экспортировать игру (или игровые уровни) как "только игровые данные". Первый уровень должен иметь такое же название продукта (название Вашей игры). Например, если имя продукта "TheGame", файл первого уровня должен быть " TheGame.dat". После создания и экспорта файлов .dat, добавьте файлы в проект xcode (как новый ресурс), обновите пользовательскую информацию, которую вы хотите (значок игры, ваше имя, название игры,...) и постройте проект..

Game Data Only for Pocket PC, Handheld PC, Smartphone or GP2X: Экспортирует только файл данных с оптимизацией для карманных ПК, наладнонников, смартфонов и устройств GP2X.

Пользовательские расширения:

Если вы не хотите использовать расширение .dat, просто переименуйте его как угодно.

Файловые ассоциации:

Если вы распространяете несколько игр, вы можете сэкономить место, экспортировав только один с исполняемым движком. Переименуйте файлы .dat в расширение .gedx и используйте инструмент установки, чтобы связать расширение .gedx с расположением движка.
Таким образом, другие игры будут выполняться системой, когда пользователь нажимает файлы .gedx

Exit (Выход): Закрывает Game Editor и выходит в систему.

Add Actor (Добавить актёра)

(https://web.archive.org/web/20160617230233im_/http://game-editor.com:80/docs/images/mainmenu_addactor.gif)

(https://web.archive.org/web/20160617230233im_/http://game-editor.com:80/docs/images/addactor.gif)


В Game Editor все игровые объекты называются актёрами (это фон, ракета, корабль ...).
Актёры наполняют игру и могут иметь скрипты поведения с помощью событий и действий Game Editor.

Добавление актёров в игру

Чтобы узнать как шаг за шагом создать обычного актёра, смотрите раздел Уроки .

Name (Имя):Используйте это поле, чтобы назвать актёра. Имена актёров должны начинаться с символов и должны сопровождаться символами, цифрами или "_". Имена функции скрипта и переменных не допускаются.
Разрешено: MyActor, ball, dog_catcher
Не разрешено: / right, CreateActor, fgets

Type (Тип):Выберите тип нового актёра из раскрывающегося списка: Normal (Обычный), Canvas (Холст), Wire Frame Region (Область ограниченная рамкой) или Filled Region (Заполненная область).

Normal (Обычный):Актёр, который может иметь анимацию (файлы изображений, связанные с актёром). Этот актёр может использоваться для создания самого широкого разнообразия форм поведения в программе.

Canvas (Холст):Подумайте о себе как о начинающем Пикассо, когда вы используете актёр Canvas (Холст). Рисуйте на этом актёре используя Функции рисования. Этот актёр позволяет рисовать линии, круги и т.д.

(https://web.archive.org/web/20160617230233im_/http://game-editor.com:80/docs/images/canvasactor.jpg)

Актёр  Canvas (Холст) изображён в Game Editor в виде голубого прямоугольника. Актёр Canvas (Холст) может быть свободно перемещён или изменён. Прямоугольник невидим, когда игра запущена в игровом режиме. Пошаговое руководство по созданию актёра Canvas смотрите в разделе Уроки .

Wire Frame Region (Область ограниченная рамкой):Актёр Wire Frame Region (Область ограниченная рамкой) используется в качестве датчика для выполнения таких действий, как "Открыть дверь", когда, например, обычный актёр входит в область ограниченную рамкой. Его также можно использовать для создания барьера, который отталкивает игровые объекты, такие как шары. Например, в игре в пинбол шар может отскакивать от стенок области ограниченной рамкой. Область Wire Frame Region не регистрирует события и клики мыши.

(https://web.archive.org/web/20160617230233im_/http://game-editor.com:80/docs/images/regionactor.jpg)

Актёр Wire Frame Region (Область ограниченная рамкой) изображён в Game Editor как зелёный прямоугольник. Его можно свободно перемещать или изменять. Прямоугольник невидим, когда игра запущена в игровом режиме.

Filled Region (Заполненная область):В отличии от Wire Frame Region (Область ограниченная рамкой), актёр Filled Region (Заполненная область) регистрирует клики мышью, как и обычные актёры. Это позволяет создавать сенсорные точки или датчики, которые реагируют на клики мышью без использования обычных актёров.

(https://web.archive.org/web/20160617230233im_/http://game-editor.com:80/docs/images/filledregion.jpg)

Актёр Filled Region (Заполненная область) изображён в Game Editor как синий прямоугольник.  Его можно свободно перемещать или изменять. Прямоугольник невидим, когда игра запущена в игровом режиме.


Path (Путь)

(https://web.archive.org/web/20160617230233im_/http://game-editor.com:80/docs/images/mainmenu_path.gif)

Добавляет новый путь или выбирает существующий путь для просмотра и редактирования.

(https://web.archive.org/web/20160617230233im_/http://game-editor.com:80/docs/images/pathcontrol.gif)

Add Path (Добавить путь):

(https://web.archive.org/web/20160617230233im_/http://game-editor.com:80/docs/images/addpath.gif)

- Введите имя пути (Name) и продолжительность пути в кадрах (Frames).
- Нажмите кнопку "Draw" ("Рисовать"), чтобы начать рисовать путь.
- Нажмите кнопку "Close" ("Закрыть"), когда новый путь будет завершен.

(https://web.archive.org/web/20160617230233im_/http://game-editor.com:80/docs/images/path.jpg)

Клик правой кнопкой мыши по точке пути:
- Linear (Линейный): Делает текущий узел линейным.
- Curved (Кривой): Делает текущий узел кривым.
- Delete (Удалить): Удаляет текущий узел.

Примечание: Перетаскивание первой точки пути (оранжевая) с помощью мыши перемещает весь путь.
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 20 Июнь 2018, 12:14:48
Главное меню редактора (продолжение)


Regions (Регионы)

(https://web.archive.org/web/20160403200124im_/http://game-editor.com:80/docs/images/mainmenu_regions.gif)
(https://web.archive.org/web/20160403200124im_/http://game-editor.com:80/docs/images/region.gif)

Add Activation Region (Добавить регион активации):

Регионы активации - это области экрана, которые определяются ограничительной рамкой и включают в себя актёров игры.
Регион и ваши актёры загружаются только тогда, когда актёр View (Вид) пересекает его.
Регион и все актёры в регионе удаляются, когда View актёр больше не пересекает его.

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

(https://web.archive.org/web/20160403200124im_/http://game-editor.com:80/docs/images/activationregion.jpg)

Регион активации отображается в Game Editor как жёлтый прямоугольник. Его можно свободно перемещать или изменять. Прямоугольник невидим, когда игра запущена в игровом режиме.

Клик правой кнопкой мыши по краю региона активации открывает вплывающее меню, которое позволяет удалить регион активации из игры.
Если актёр перемещается за пределы региона активации, он будет уничтожен только тогда, когда регион активации больше не будет пересекаться с актером  "View" ("Вид").
Актёр будет уничтожен регионом активации, когда он находится за пределами актёра "View"("Вид").
Можно создавать множество регионов активации с перекрывающимися областями.
Все актёры региона активации загружаются внутри его области. Также загружаются родители актера и ссылки на актёра через скрипт.
Актёры, созданные с помощью "Create Actor", будут назначены видимому региону активации.
Если актёр "View"("Вид") покидает регион, а затем возвращается, все актёры будут перезагружены, за исключением тех, которые были уничтожены явно  действием "Destroy Actor" ("Уничтожить актера").
Любой актёр может быть загружен с помощью "Create Actor" ("Создать актёра"), даже если он был уничтожен явно.
Если игра не содержит ни одного региона активации, то при запуске игры будут загружены все актёры.

Ниже представлена многоуровневая игра с 3-мя регионами активации:

(https://web.archive.org/web/20160403200124im_/http://game-editor.com:80/docs/images/activationregion_sample.gif)


Show/Hide Regions (Показать/Скрыть регионы):

Показывает и скрывает регионы активации


Script (Скрипты)

(https://web.archive.org/web/20160403200124im_/http://game-editor.com:80/docs/images/mainmenu_script.gif)
(https://web.archive.org/web/20160403200124im_/http://game-editor.com:80/docs/images/mainmenu_globalcode.gif)
                                                                     
Это меню дает быстрый доступ к глобальному коду и всем скриптам актёров (сначала будут показаны последние пять использованных скриптов).
Используйте Global Code (Глобальный код), чтобы свободно добавлять код на языке Си (массивы, структуры и функции).

Программисты Си оценят возможность использовать всю мощь языка Си.
Более подробная информация о скриптах здесь.
 

Game Mode (Игровой режим)

(https://web.archive.org/web/20160403200124im_/http://game-editor.com:80/docs/images/mainmenu_gamemode.gif)

Переключает Game Editor в игровой режим, чтобы проверить игру.
Нажатие клавиши <ESC> выходит из "Игрового режима" и возвращает вас в редактор.


Configuration (Конфигурация)

(http://blender-3d.ru/forum/file:///D:/%D0%9F%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4%20Gameeditor/Docs/images/mainmenu_config.gif)
(https://web.archive.org/web/20160403200124im_/http://game-editor.com:80/docs/images/mainmenu_gameproperties.gif)
                                                                                                         

Game Properties (Свойств игры):

(https://web.archive.org/web/20160403200124im_/http://game-editor.com:80/docs/images/gameproperties.gif)

- Game resolution (Разрешение игры): Выбор разрешения из обнаруженных машиной, или ввод пользовательского разрешения. На Pocket PC вы можете изменить ориентацию экрана.
- Safe margin (Границы безопасности): Этот параметр увеличивает область, используемую в событии Out of Vision (Вне области видимости).
- Mode (Режим): Указывает режим отображения игры "Window" ("В окне") или "Full Screen" ("На весь экран").
- Frame rate (Частота кадров): Указывает скорость анимации (кадров в секунду).
- Show mouse (Отображать курсор мыши): Указывает, должен ли отображаться курсор мыши.
- Suspend game if lost focus (Пауза в игре, если вне фокуса): Установите "Yes", чтобы приостанавливать игру когда потерян фокус  или получать системные сообщения на Pocket PC, Handheld PC и смартфонах.
На Pocket PC и смартфонах будет показан игровой экран и меню для продолжения или выхода из игры.
На смартфонах эта опция всегда активна для приема телефонных звонков.

- Use ESC key to exit game (Использовать ESC для выхода из игры): Выберите "Yes", чтобы выйти из игры при нажатии на клавишу ESC.
Если вы не хотите использовать клавишу ESC для выхода, выберите "No" и используйте функцию ExitGame () в любом действии для выхода из игры. Этот параметр будет работать только после экспорта игры в исполняемый файл.

- Motion Compensation (Компенсация движения): Выберите "Yes", чтобы скорректировать скорость актера, если реальная частота обновления экрана медленнее, чем частота кадров игры.
- Audio format (Формат аудио): Установите частоту звука. Формат моно или стерео, и максимальные количество одновременно проигрываемых звуков в игре.
- Icon file (Файл значка): Укажите файл значка, который будет использоваться при экспорте игры в исполняемый файл. Чтобы показать значок в Windows или Pocket PC, укажите файл значка .ico.
- Game title (Название игры): Название игры, которое будет использоваться при экспорте игры.
- Game background color (Цвет фона игры): Укажите цвет фона игры.
- Pocket PC and GP2X Keys (Клавиши  Pocket PC и GP2X): Используйте для переназначения клавиш Pocket PC или GP2X на клавиши настольных приложений используемые в игре. Клавиши могут отличаться на разных машинах.


Preferences (Настройки):

(https://web.archive.org/web/20160403200124im_/http://game-editor.com:80/docs/images/mainmenu_preferences.gif)


- Show Grid (Отображать сетку): Отображает и скрывает сетку.
- Grid Snap (Прилипание к сетке): Устанавливает режим прилипания к сетке.
- Main color (Основной цвет): Устанавливает цвет линий сетки.
- Resolution (Разрешение): Устанавливает цвет линий сетки, которые соответствуют параметрам разрешения игры.
- Grid Size (Размер сетки): Устанавливает размер клеток сетки.
- Enable tool tips (Включить подсказки): "Yes" включает отображение подсказок. "No" отключает отображение подсказок.
- Persistent undo (Сохраняемая отмена): Если вы выберете "Yes", Game Editor будет искать соответствующий файл .undo, и восстановит историю редактирования игры при её следующей загрузке.
- Maximum undo levels (Максимальное количество уровней отмены): Количество уровней отмены для записи. Этот параметр будет иметь место только в том случае, если для поля "Persistent undo" установлено значение "Yes". Уменьшите параметр "Maximum undo levels", чтобы уменьшить размер файла отмены.
- Image Editor (Редактор изображений): Выберите редактор изображений, чтобы редактировать кадры анимации. Редактор изображений должен обрабатывать файлы изображений PNG с прозрачным фоном. Если у вас нет редактора изображений, используйте поисковую систему и введите запрос "Редакторы изображений с поддержкой PNG", чтобы найти хороший редактор изображений.


Help (Справка)

(https://web.archive.org/web/20160403200124im_/http://game-editor.com:80/docs/images/mainmenu_help.gif)
(https://web.archive.org/web/20160403200124im_/http://game-editor.com:80/docs/images/mainmenu_help_dropdown.gif)
                                                                                                       

Documentation (Документация):
Переход к файлам документации Game Editor.

Tutorials (Уроки):
Выберите тему урока, чтобы увидеть анимированный фильм об одном или нескольких аспектах игрового дизайна в редакторе.

Get New Tutorials (Получить новые уроки):
Выберите этот параметр, чтобы получить новейшие мультимедийные уроки. У вас должно быть активным подключение к интернету.

Check for Updates (Проверить обновление):
Выберите этот параметр, чтобы получить новейшие обновление Game Editor.

Game Demos (Демо игры):
Загрузите демонстрационные игры из множества файлов примеров, созданных сообществом пользователей и программистов Game Editor.

User Forums (Форум пользователей):
Переход на форум Game Editor, чтобы узнать о программе больше.

About (О программе Game Editor):
Информация о разработке Game Editor и программистах.


Info (Информация):

(https://web.archive.org/web/20160403200124im_/http://game-editor.com:80/docs/images/mainmenu_mousecoordinates.gif)


- Координаты мыши относительно игрового центра.
- Отображает координаты актёра относительно родителя, при нажатии на актёра.
- Статус привязки актера.

Управление клавиатурой и мышью в редакторе:
Увеличение/уменьшение: +/- или >/<
Отмена: Ctrl+Z
Возврат: Ctrl+Y или Ctrl+T
Выбор перекрывающихся актёров: клик мышью + левый Ctrl
Перемещение по рабочему пространству редактора: клик мышью + правый Ctrl
Переключение примагничивания актёра: левый Shift  (магнитный эффект между актёрами и тайлами для их более точного позиционирования)
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Striver от 20 Июнь 2018, 14:19:19
Я думал, только я тут такой упоротый  :)

Оффлайн-справку планируешь слепить?
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 20 Июнь 2018, 15:42:11
Иду по твоим стопам :) Это мой первый опыт, да и стараюсь всё проверять... потому так долго...

Да, я просто выкладываю процесс её перевода...  потом выложу архив... Если будешь не прочь разместить справку у себя онлайн и оффлайн (там всего около 2,5 Мб в несжатом формате с изображениями) на сайте, то я буду рад.
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Striver от 20 Июнь 2018, 16:44:59
Цитировать
Если будешь не прочь разместить справку у себя онлайн и оффлайн
Да без проблем, выложу. Ну, до момента, пока мне не надоест за хостинг платить.
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 09 Июль 2018, 13:48:44
Панель управления актёром

Панель управления актёром дает вам возможность создавать уникальное поведение вашего актера. Доступ к панели управления актёром осуществляется нажатием правой кнопки мыши на актере и выбором Actor Control из всплывающего меню:

(https://web.archive.org/web/20110203093833im_/http://game-editor.com/docs/images/actormenu.gif)

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

(https://web.archive.org/web/20110203093833im_/http://game-editor.com/docs/images/actorcontrol.gif)

Панель управления актёром предоставляет вам множество полезных функций. Следующее описание посвящено тому, что означает каждая функция и как она используется.

Name (Имя):

В этом раскрывающемся списке отображается имя присвоенное вашему актёру. Появится список, в котором отображаются все актёры вашей игры. Вы можете выбрать любого актёра с помощью этой функции, и установить или изменить его поведение.

Transparency (Прозрачность):

Прозрачность контролирует видимость вашего актёра. Актёр с прозрачностью 50% отобразит часть фона, который он перекрывает. Актёр с прозрачностью установленной в 0% (по умолчанию) будет непрозрачным.
Актёры-потомки наследуют прозрачность родителя.

Z Depth (Z-глубина):

Эта опция задает порядок отрисовки или глубину актера в игре. Например, если ваша игра включает в себя дерево (актёр) и кролик (актёр), вы должны установить у актёра дерево Z-глубину меньше Z-глубины актёра кролика, чтобы кролик прыгал перед деревом.

Create at startup (Создавать при запуске):

Актёры могут быть созданы сразу после запуска игры или позже в игре. Этот параметр указывает, будет ли создаваться актёр, когда начнется игра. Если вы установите для этого параметра значение  No (Нет), вы можете создать актёра, используя действие Create Actor (Создать актёра).

Clone (Клонировать):

Создаёт клон актёра. Клонированные актёры используют те же действия и анимации.

Single (Одиночный): Выберите этот параметр, чтобы сделать один клон вашего текущего актёра.

Array (Массив): Создаёт прямоугольный массив актёров. Изменяйте параметры, чтобы видеть изменения в реальном времени.

(https://web.archive.org/web/20110203093833im_/http://game-editor.com/docs/images/clonearray.gif)

- Horizontal count  (Число по горизонтали): указывает количество клонов в строке.
- Vertical count (Число по вертикали): указывает количество клонов в столбце.
- Distance between clones (Расстояние между клонами): выберите  Automatic (Автоматически), чтобы получить расстояние ширины и высоты актёра.
- Horizontal distance (Расстояние по горизонтали): выберите  Manual (Вручную) из списка выше, чтобы указать горизонтальное расстояние между клонами.
- Vertical distance (Расстояние по вертикали): выберите  Manual (Вручную) из списка выше, чтобы указать вертикальное расстояние между клонами.

Along path (Вдоль пути): Создаёт клоны по выбранному пути. Изменяйтее параметры, чтобы видеть изменения в реальном времени.

(https://web.archive.org/web/20110203093833im_/http://game-editor.com/docs/images/clonealongpath.gif)

- Path (Путь): выберите ранее созданный путь из раскрывающегося списка.
- Count (Число): укажите количество клонов на выбранном пути.

Remove (Удалить):

Удаляет выбранного актёра из игры.

Move and Stop (Двигающийся и не двигающийся):

Укажите, будет ли выбранный актёр перемещаться по пути и проигрывать анимацию в режиме редактирования Game Editor.

Tile (Тайлы или плитки):

Рисует актёра тайлами.

Tile Matching (Подбор тайлов): создаёт соответствующие тайлы.
Animation (Анимация): выбирайте анимационный (графический) файл из этого раскрывающегося списка.


(https://web.archive.org/web/20110203093833im_/http://game-editor.com/docs/images/actortile.gif)

Анимация (графика) должна содержать 15 квадратных(!) тайлов (от 0 до 14), которые затем при рисовании, образуют картинку и границы (зелёные), как показано выше.
- Используйте <Правый SHIFT> для стирания тайлов.
- Используйте <Правый CTRL> чтобы скрыть курсор и перемащатся в редакторе.
- Используйте ESC, чтобы выйти из режима "Draw Tile" (Рисование тайлов).

Single tile (Одинарный тайл): Создаёт одинарные тайлы.

Animation (Анимация): выбирайте анимационный (графический) файл из этого раскрывающегося списка.
Random tile (Случайный тайл): Yes (Да) включает выбор случайного тайла из анимации.

(https://web.archive.org/web/20110203093833im_/http://game-editor.com/docs/images/actortilesingle.gif)

Рисование одинарными тайлами.
- Используйте стрелки <ВПРАВО> и <ВЛЕВО> чтобы сменить кадр анимации.
- Используйте <Правый SHIFT> для стирания тайлов.
- Используйте <Правый CTRL> чтобы скрыть курсор и перемещатся в редакторе.
- Используйте ESC, чтобы выйти из режима "Draw Tile" (Рисование тайлов).
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 02 Август 2018, 19:26:47
Панель управления актёром (продолжение)


Text (Текст только на латинице):

Укажите текст и шрифт актёра. (Текстовый актёр не может принимать события столкновения)

(https://web.archive.org/web/20110203093833im_/http://game-editor.com/docs/images/text.gif)
 
Text (Текст): Пишите ваш текст здесь. Если вы ничего не введёте, то актёр перестанет быть текстовым.
Font (Шрифт): Выбор шрифта, который был создан ранее с помощью кнопки New Font (Новый шрифт).
New font (Новый шрифт): Укажите "From Image File ("Из файла изображения") или шрифт "True Type", чтобы назначить шрифт тексту.
File (Файл): Загрузка текста из файла или сохранение текста в файл.

Image font (Шрифт из изображения): Создаёт шрифт из файла изображения.

(https://web.archive.org/web/20110203093833im_/http://game-editor.com/docs/images/imagefont.gif)

File (Файл): Загружает файл изображения (jpeg, gif, png, bmp, pcx, tga, xpm, xcf, lbm и tif). Файл изображения должен содержать все символы изображения в одной строке (последовательность ASCII).
Initial font char (Начальный символ шрифта): Устанавливает начальное изображение символа загруженном файле.
Numbers of font chars (Количество символов шрифта): Задаёт количество символов в загруженном файле.

True Type font (Шрифт True Type):

(https://web.archive.org/web/20110203093833im_/http://game-editor.com/docs/images/ttffont.gif)

Вы можете загрузить любой шрифт True Type (.ttf) и установить его размер, цвет, стиль (Normal, Bold, Italic и Underline) и сглаживание (Soft).

Text Input (Ввод текста):

Выберите "Yes" ("Да"), чтобы разрешить текстовый ввод актёру для приема текста вводимого пользователем.
Текст, введенный пользователем, может быть получен из переменных "text" или "textNumber".
Вы можете задать длину ввода, введя текст или просто вставив символы пробела.
Если вы введете несколько строк текста, то ввод автоматически станет многострочным.

Максимальная длина вводимого текста - 255 символов.
На Pocket PC открывается панель мягкого ввода с невращающимся разрешением.

Text Input Configuration (Конфигурация ввода текста):

(https://web.archive.org/web/20110203093833im_/http://game-editor.com/docs/images/text_input.gif)

Get input focus (Получить фокус ввода): Выберите "Yes" ("Да"), чтобы получить фокус ввода для этого актёра.
Draw border (Рисовать границу): Выберите "Yes" ("Да"), для рисования границы вокруг области ввода текста с использованием выбранного цвета. Кликните левой кнопкой мыши по цвету, чтобы выбрать цвет границы.
Draw background (Рисовать фон): Выберите "Yes" ("Да"), для рисования фона в области ввода текста. Кликните левой кнопкой мыши по цветы, чтобы выбрать цвет фона.
Cursor color (Цвет курсора): Кликните левой кнопкой мыши по цвету, чтобы выбрать цвет курсора.
Known Text Input bugs (Известные ошибки ввода текста): Если ваш текст использует шрифт True Type, и пользователь вводит текст выходящий за пределы области ввода, то некоторые из вводимых символов могут быть утрачены.

Normal or Infinite (Обычный или бесконечный):

Выберите x Infinite (Бесконечно по х), чтобы повторить актёра вдоль оси x.
Выберите y Infinite (Бесконечно по y), чтобы повторить актёра вдоль оси y.
Выберите Infinite (Бесконечно), чтобы повторить актёр вдоль обеих осей.
Выберите Normal (Обычный), чтобы актёр не повторялся.

Animation (Анимация):

Добавляйте, редактируйте или удаляйте анимации и последовательности для актёра.

Add Animation (Добавить анимацию): Добавляет новую анимацию выбранному актёру.

(https://web.archive.org/web/20110203093833im_/http://game-editor.com/docs/images/addanimation.gif)

- Укажите имя анимации.
- Выберите файл анимации (jpeg, gif, png, bmp, pcx, tga, xpm, xcf, lbm и tif).
- Укажите, содержится ли анимация в одном файле или нескольких файлах.
- Если анимация содержится в одном файле, укажите количество горизонтальных и вертикальных кадров.
- Укажите частоту кадров анимации.

Примечания:
- Если файл изображения имеет глубину цвета ниже 32 бит, Game Editor различает, что цвет первого пикселя (верхний левый угол) - это цвет, который должен стать полностью прозрачным в изображении.
- Если ваше изображение имеет глубину цвета 32 бит, Game Editor применит альфа-канал (канал прозрачности) изображения..
- Если ваше изображение является файлом gif, Game Editor будет применять прозрачный цвет указаный в файле gif.
- Если все пиксели на изображении имеют один и тот же цвет (сплошное изображение), изображение будет считаться сплошным.

Add Sequence (Добавить последовательность): Определяет последавательность кадров на основи анимации.

(https://web.archive.org/web/20110203093833im_/http://game-editor.com/docs/images/addsequence.gif)

- Выберите анимацию.
- Укажите имя последовательности.
- Укажите частату кадров последовательности.
- Введите кадры последовательности (Например: 14;2;9;10;22;2;3;4...).

Edit (Редактировать): Редактирует существующую последовательность или заменяет файл анимации.

(https://web.archive.org/web/20110203093833im_/http://game-editor.com/docs/images/editsequence.gif)

- Введите новую последовательность кадров.
- Укажите новую частоту кадров для последовательности.

(https://web.archive.org/web/20110203093833im_/http://game-editor.com/docs/images/editanimation.gif)

Используйте кнопку Edit (Редактировать), чтобы открыть редактор изображений.
Редактор изображений, определенный в панели Preferences (Настройки), будет открыт с выбранным кадром анимации.
Aосле сохранения кадра в редакторе изображений, кадр будет обновлен в Game Editor.

Примечания:

- Редактор изображений должен поддерживать редактирование файлов изображений с прозрачностью в формате PNG.
- Перед редактированием игра должна быть сохранена.

Parent (Родитель):

Устанавливает родителя актёра (родителем может быть любой актёр в игре, включая актёра " view"  ("Вид") или "no parent" ("Без родителя")). Если у актёра есть родитель, то когда родитель перемещается, дочерний актёр также будет перемещен.

Path (Путь):

Устанавливает для актёра путь (путь может быть указан как  ранее определённый путь,  "random path" ("случайный путь") или "no path" ("без пути")).

Events (События):

События случаются, когда что-то происходит с актёром. Например, пользователь указателем мыши нажимает на актёре, или актёр сталкивается с другим актёром.
Events (Cобытия) и Actions (Действия) работают совместно, вдыхая жизнь в ваших актёров.

Действия происходят как продолжение событий. Например, посли клика пользователем мышью на актёре (Событие), актер изменяет анимацию (Действие), или когда один актёр сталкивается с другим актёром (Событие), актёры слокновения уничтожаются (Действие). Представьте, допустим, что корабыль был подбит в результате события столкновения с пулей.

Очень важно, чтобы вы понимали логику взаимодействия событий и действий, если хотите получить максимальную отдачу от Game Editor.

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

Event Inheritance (Наследование событий):

Вы можете использовать опцию "Inherit events from:" ("Наследовать события от:"), чтобы текущий актёр наследовал события от выбранного актёра.
Текущий актёр будет иметь все его собственные события, плюс события от выбранного актёра. 

Пример:

Допустим, у вас есть несколько разных "вражеских" актёров, которые должны двигаться влево и вправо, и прыгать.
Вы можете создать актёр 'baseEnemie', и добавить события для таких перемещений:

Клавиша вправо: движение вправо
Клавиша влево: движение влево
Клавиша вверх: прыжок

После выберите актеров "врагов", и выберите "Наследовать события от: baseEnemie".
Если вы хотите, чтобы какой-то враг прыгал по-иному, просто добавьте новое событие Key Down (Клавиша нажата) с помощью клавиши Up (Вверх).
Когда пользователь нажмёт клавишу "Вверх", наследованное событие будет заменено установленным событием для этого "вражеского" актёра.

Receive events even if they occur out of vision (Получать события когда вне поля видимости):

Установите этот параметр на "No" ("Нет"), чтобы оптимизировать игру. Актёры вне поля видимости, с этой опцией, установленной в "No"("Нет"), не получают следующих событий:

Animation Finish (Конец анимации)
Collision (Столкновение)
Collision Finish (Конец столкновения)
Draw Actor (Отрисовка актёра)
Key Down (Клавиша нажата)
Key Up (Клавиша отпущена)
Mouse Button Down (Клавиша мыши нажата)
Mouse Button Up (Клавиша мыши отпущена)
Timer (Таймер)
Название: Re: Конструктор 2D игр Game Editor
Отправлено: Samovar от 06 Август 2018, 17:43:13

События актёра

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

Game Editor поддерживает следующие события:


Activation Event (Событие активации):

(https://web.archive.org/web/20110203101841im_/http://game-editor.com/docs/images/eventactivationevent.gif)

Происходит при получении события активации от актёра.
События активации - это события, отправленные другим актёрам, когда происходит указанное событие (Collision (Столкновение), MouseDown (Клавиша мыши нажата), Key Down (Клавиша нажата) и т.д.).
Визуализируйте игру, в которой некоторые актёры начинают двигаться, когда главный актёр находится в определенном месте на игровом экране. События активации легко служат этой цели.

(https://web.archive.org/web/20110203101841im_/http://game-editor.com/docs/images/activationevents.jpg)
 
Создание события активации:

Кликните правой кнопкой мыши на актёре, чтобы создать событие активации. Выберите "New Activation Event" ("Новое событие активации") из всплывающего списка, и определите событие, которое будет генерировать событие активации. Затем выберите актёра(ов), который получит событие активации.
Будет проведена линия от актёра, который генерирует событие, к актеру, который получает событие. Линия педставляет собой зелено-красный градиент. Зеленое начало - означает создание события, а красное окончание - прием события. Последовательности событий активации можно видеть благодаря этим линиям.
Затем, нажмите клавишу Esc, для завершения создания событий активации.

Целенаправленно сделано так, что клонированные актёры не копируют события активации. Это сделано для того, чтобы клоны могли получать доступ к событиям активации индивидуально.

Если остановить указатель мыши над линией активации, то откроется подсказка с описанием события активации.
Событие активации можно удалить кликом правой кнопкой мыши на линии активации и выбором "Remove" ("Удалить"). 

Актеры могут генерировать события активации на основе событий активации. Это позволяет сделать более сложные процедуры.
Выберите событие "Activation Event" ("Событие активации") в панели управления актёра, чтобы назначить действие, которое будет выполнено, когда произойдет событие активации.
Действие может быть назначено в зависимости от актёра, который отправляет событие активации. Таким образом, различные действия могут исходить от разных "Activation Event" ("Событий активации") актёров.

Выберите "Any Actors" ("Любые актёры"), и действие произойдет, когда актёр получит "Activation Event" ("Событие активации") от любого связанного с ним актёра.
Выберите "All Actors"("Все актеры"), и действие произойдет только тогда, когда все связанные актёры отправят "Activation Event" ("Событие активации").

Параметр "From Actor" ("От актёра"), может быть использован в качестве логических операций:

Логическая операция "Или" получается через выбор "Activation Event (Any Actor (Любой актёр))".
Логическая операция "И" получается через выбор  (All Actors (Все актёры))" .

При нажатии на кнопку "Show/Hide Activation Events"  ("Показать/Скрыть события активации"),  во всплывающем меню актёра (ПКМ на актёре), будут отображены или скрыты лини событий активации в редакторе. Линии событий активации не отображаются в игровом режиме.


Animation Finish (Конец анимации):

(https://web.archive.org/web/20110203101841im_/http://game-editor.com/docs/images/eventanimationfinish.gif)

Происходит, когда выбранная анимация заканчивается.


Collision (Столкновение):

(https://web.archive.org/web/20110203101841im_/http://game-editor.com/docs/images/eventcollision.gif)

Происходит во время  столкновения с выбранной стороной ("Any Side" ("Любой стороной"), "Top Side" ("Верхней стороной"), "Bottom Side" ("Нижней стороной"), "Left Side" ("Левой стороной"), "Right Side" ("Правой стороной"), "Top or Bottom Side" (Верхней или нижней стороной"), "Left or Right Side" ("Правой или левой стороной")) указанного актёра.

Традиционно, в играх типа платформер, когда персонаж игрока сталкивается с "Top Side" ("Верхней стороной") монстра, то событие столкновениия уничтожает монстра. Когда персонаж игрока сталкивается с "Left or Right Side" ("Левой или правой стороной") монстра, то событие столкновения уничтожает персонаж игрока.

Repeat this event while is colliding (Повторять событие во время столкновения): Выбирете "Yes" ("Да"), чтобы повторять событие столкновения пока актёр сталкивается. Выберите "No" ("Нет"), чтобы активировать событие столкновения только вначале столкновения.


Collision Finish (Конец столкновения):

(https://web.archive.org/web/20110203101841im_/http://game-editor.com/docs/images/eventcollisionfinish.gif)

Происходит при завершении столкновения с выбранным актёром.


Create Actor (Создание актёра):

(https://web.archive.org/web/20110203101841im_/http://game-editor.com/docs/images/eventcreateactor.gif)

Происходит при создании текущего актёра.


Destroy Actor (Уничтожение актёра):

(https://web.archive.org/web/20110203101841im_/http://game-editor.com/docs/images/eventdestroyactor.gif)

Происходит при уничтожении текущего актёра.


Draw Actor (Отрисовка актёра):

(https://web.archive.org/web/20110203101841im_/http://game-editor.com/docs/images/eventdrawactor.gif)

Происходит в каждом кадре при заданной скорости воспроизведения кадров игры. Действия в этом случае будут выполняться в каждом игровом кадре.


Key Down (Клавиша нажата):

(https://web.archive.org/web/20110203101841im_/http://game-editor.com/docs/images/eventkeydown.gif)

Происходит при нажатии указанной клавиши или последовательности клавиш.
Можно указать до 12 клавиш.

Clear (Очистить): Кликните, чтобы очистить список указанных клавиш.

Execute when (Выполнять, когда):
Выберите "At least one key is pressed" ("По крайней мере, одна клавиша нажата"), чтобы выполнить действия, когда нажата хотя бы одна из указанных клавиш.
Выберите "All keys are pressed" ("Все клавиши нажаты") для выполнения действий при нажатии всех указанных клавиш.
Выберите "Keys are pressed in order" ("Клавиши нажимаются по порядку") для выполнения действий, когда указанные клавиши нажаты по порядку. Вы можете использовать эту опцию для создания чит-кодов для своих игр.

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

Repeat (Повтор): Если повтор включен, событие будет отправляится пока клавиша нажата.
Кликните правой кнопкой мыши, чтобы событие происходило при нажатии любой клавиши клавиатуры.


Key Up (Клавиша отпущена):

(https://web.archive.org/web/20110203101841im_/http://game-editor.com/docs/images/eventkeyup.gif)

Происходит при отпускании указанной клавиши.
Кликните правой кнопкой мыши, чтобы событие происходило при отпускании любой клавиши клавиатуры.


Mouse Button Down (Кнопка мыши нажата):

(https://web.archive.org/web/20110203101841im_/http://game-editor.com/docs/images/eventmousebuttondown.gif)

Происходит при нажатии указанной кнопки мыши.
Drag (Перетаскивание): Выберете Enable (Включить), для того чтобы перетаскивать актёра с помощью мыши.


Mouse Button Up (Кнопка мыши отпущена):

(https://web.archive.org/web/20110203101841im_/http://game-editor.com/docs/images/eventmousebuttonup.gif)

Происходит, когда указанная кнопка мыши отпущена.


Mouse Enter (Мышь входит в область):

(https://web.archive.org/web/20110203101841im_/http://game-editor.com/docs/images/eventmouseenter.gif)

Происходит при входе указателя мыши в область актёра.


Mouse Leave (Мышь покидает область):

(https://web.archive.org/web/20110203101841im_/http://game-editor.com/docs/images/eventmouseleave.gif)

Происходит при выходе указателя мыши из области актёра.


Move Finish (Конец перемещения):

(https://web.archive.org/web/20110203101841im_/http://game-editor.com/docs/images/eventmovefinish.gif)

Происходит, когда движение, начатое с действия Move To , достигает указанной позиции.


Out of Vision (Вне области видимости):

(https://web.archive.org/web/20110203101841im_/http://game-editor.com/docs/images/eventoutofvision.gif)

Происходит, когда актёр покидает поле зрения (Размер текущего вида плюс safe margin (границы безопасности)).


Path Finish (Конец пути):

(https://web.archive.org/web/20110203101841im_/http://game-editor.com/docs/images/eventpathfinish.gif)

Происходит, когда выбранный путь завершается.


Timer (Таймер):

(https://web.archive.org/web/20110203101841im_/http://game-editor.com/docs/images/eventtimer.gif)

Происходит при истечении указанного времени в таймере. Таймер должен был быть предварительно создан с помощью действия.