| 
	
		
		
			| Урок по выполнению в 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 (Йакуд) Если честно, статья почти не о чемЭто твоё мнение, остальные считают иначе
 |  |  |  |  |  |  |  
 |