Урок по выполнению в GM
| |
MrIncrof | Дата: Вторник, 08 Ноября 2011, 21:11 | Сообщение # 1 |
Lite Programmer
Сейчас нет на сайте
| Привет всем! Я решил написать ещё один мини-урок по выполнению разных действий в ГМ. Начнём мы с execute_program. Эта функция выполняет файл, который запускается через обычное средство на ОС. К примеру можно запустить редактор карт, который находится в папке с игрой и называется editor.exe. Чтобы запустить его, нужно написать следующий код: Code execute_program(working_directory+"\editor.exe","",0) Функция имеет аргументы fname, arg0, arg1.., wait. fname - путь до файла и его имя с расширением, arg[0-16] - аргументы командной строки и wait - время ожидания до запуска программы. Константа working_directory считывает папку, в которой запускается файл. Пути до фалов нужно писать через обратный слеш (\). Также после константы working_directory нужно в кавычках написать сначала '\' а потом уже название файла с расширением. Далее мы рассмотрим функцию execute_file. Она действует почти как прошлая функция, но она имеет огромное отличие - она запускает не программу, а файл. Это может быть любой файл, который корректно открывается через стандартный блокнот. Файл, который мы запустили, а точнее его содержание, сначала считывается в ГМ, а потом выполняется в программе. Если нет никаких дополнительных функций в коде после execute_file, тогда он запускается как код GML. Аргументы: Code execute_file(fname,arg0,arg1,...) Следующая функция это execute_string, она выполняет строчку, то есть создаёт в объекте переменную с заданными значениями. Использовать можно по разному, например, если нужно создать большое кол-во локальных переменных в объекте, можно использовать: Code for (i=0; i<=20; i+=1) { execute_string("str"+string(1),0); } Чтобы создать глобальную переменную, нужно написать execute_string("global.str"+string(1),0). Функция использует такие же аргументы, как и в прошлой: execute_string(str,arg0,arg1,...) Следующая функция - script_execute, она выполняет скрипт с аргументами. Здесь всё просто. Code script_execute(scr,arg0,arg1,...) И последняя функция, execute_shell - Запускает в оболочке заданную программу(или файл) с параметрами командной строки. Через эту команду можно открыть сайт в браузере по умолчанию: Code execute_shell("http://gcup.ru/",0) Ну вот и всё. Скоро ещё напишу уроки
Сообщение отредактировал 4aBo - Среда, 09 Ноября 2011, 11:58 |
|
| |
OleGoN | Дата: Вторник, 08 Ноября 2011, 21:29 | Сообщение # 2 |
Game Maker User
Сейчас нет на сайте
| Молодца.
|
|
| |
FadeBaker | Дата: Вторник, 08 Ноября 2011, 21:41 | Сообщение # 3 |
JavaSE Game Developer
Сейчас нет на сайте
| Урок супер! Писали бы все такие уроки - было бы вообще здорово! Однозначно плюсую!
Уроки по GM Minecraft 2D на GM — Мои проекты — Blood Harvest [2D] — Original Blood Harvest [2D]: Remastered Edition Adventure Craft [2D] — Sandbox Space Shock [2D] — Scroll Shooter Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
|
|
| |
MrIncrof | Дата: Среда, 09 Ноября 2011, 11:23 | Сообщение # 4 |
Lite Programmer
Сейчас нет на сайте
| OleGoN, Fade, спасибо. В следующем уроке я напишу как можно сделать простой редактор карт
|
|
| |
GameMix | Дата: Среда, 09 Ноября 2011, 11:37 | Сообщение # 5 |
старожил
Сейчас нет на сайте
| 4aBo, неплохой урок. Для новичков будет самое то, если исправишь эту строку: Quote (4aBo) execute_program(working_directory+"=editor.exe") Аргументы в функции записаны не все, да и путь к файлу неверно записан. После working_directory нужно вручную дописывать обратный слеш. Хотя, думаю, ты его хотел написать, и "=" - это просто опечатка .
Функция должна выглядеть так: Code execute_program(working_directory+"\editor.exe","",0) /* первый аргумент - путь; второй - командная строка при запуске программы; третий - время ожидания до запуска программы. */
Steel Standoff - 2D аркада. Мои статьи
Сообщение отредактировал GameMix - Среда, 09 Ноября 2011, 11:39 |
|
| |
MrIncrof | Дата: Среда, 09 Ноября 2011, 11:57 | Сообщение # 6 |
Lite Programmer
Сейчас нет на сайте
| GameMix, да, это опечатка, извини. Quote (GameMix) Функция должна выглядеть так: ОК
|
|
| |
Syank | Дата: Среда, 09 Ноября 2011, 15:18 | Сообщение # 7 |
участник
Сейчас нет на сайте
| Написал бы ты его пораньше... Добавлено (09.11.2011, 15:18) --------------------------------------------- я так понимаю, что если execute_string впихнуть в степ, то выйдут жуткие лаги? Это оооочень плохо и не удобно. Как же мне тогда ещё получить переменную из нескольких значений. Это я всё про свои terpoint'ы
|
|
| |
GameMix | Дата: Четверг, 10 Ноября 2011, 15:18 | Сообщение # 8 |
старожил
Сейчас нет на сайте
| Quote (Syank) я так понимаю, что если execute_string впихнуть в степ, то выйдут жуткие лаги? Это оооочень плохо и не удобно. Как же мне тогда ещё получить переменную из нескольких значений. Это я всё про свои terpoint'ы Используй массивы .
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
Syank | Дата: Четверг, 10 Ноября 2011, 19:50 | Сообщение # 9 |
участник
Сейчас нет на сайте
| а не. Я использую словари. Очень удобно)
|
|
| |
Йакуд | Дата: Четверг, 10 Ноября 2011, 20:49 | Сообщение # 10 |
участник
Сейчас нет на сайте
| Если честно, статья почти не о чем.. фактически, переписал справку со своими примерами.. Ничего личного...
"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso .blanco 2.0
|
|
| |
Syank | Дата: Четверг, 10 Ноября 2011, 20:54 | Сообщение # 11 |
участник
Сейчас нет на сайте
| Ну в том и суть. Понятно и с примерами.
|
|
| |
MrIncrof | Дата: Четверг, 10 Ноября 2011, 20:54 | Сообщение # 12 |
Lite Programmer
Сейчас нет на сайте
| Quote (Йакуд) переписал справку со своими примерами Хм, писал всё без справки я вообще ей не пользуюсь никогда, только по гм 8.1 и то-на английском и ооочень редко Quote (Йакуд) Если честно, статья почти не о чем Это твоё мнение, остальные считают иначе
|
|
| | |
|