Четверг, 19 Декабря 2024, 05:58

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Урок по выполнению в 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)

Ну вот и всё. Скоро ещё напишу уроки biggrin


Сообщение отредактировал 4aBo - Среда, 09 Ноября 2011, 11:58
OleGoNДата: Вторник, 08 Ноября 2011, 21:29 | Сообщение # 2
Game Maker User
Сейчас нет на сайте
Молодца. smile

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, спасибо.
В следующем уроке я напишу как можно сделать простой редактор карт cool
GameMixДата: Среда, 09 Ноября 2011, 11:37 | Сообщение # 5
старожил
Сейчас нет на сайте
4aBo, неплохой урок. Для новичков будет самое то, если исправишь эту строку:
Quote (4aBo)
execute_program(working_directory+"=editor.exe")

Аргументы в функции записаны не все, да и путь к файлу неверно записан. После working_directory нужно вручную дописывать обратный слеш. Хотя, думаю, ты его хотел написать, и "=" - это просто опечатка smile .

Функция должна выглядеть так:
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)
Функция должна выглядеть так:

ОК smile
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'ы

Используй массивы smile .


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 (Йакуд)
переписал справку со своими примерами

Хм, писал всё без справки dry
я вообще ей не пользуюсь никогда, только по гм 8.1 и то-на английском и ооочень редко
Quote (Йакуд)
Если честно, статья почти не о чем

Это твоё мнение, остальные считают иначе
LunarPixelДата: Четверг, 10 Ноября 2011, 21:04 | Сообщение # 13
старожил
Сейчас нет на сайте
Согласен с Йакуд. Статья для тех, кому лень думать и читать справку. smile
С этими функциями можно делать действительно интересные вещи, вот придумал бы что нибудь этакое и описал, чтобы интереснее было.
Ну или же опять говорить "для новичков в самый раз..."

А вообще, ничего против не имею. Пиши дальше. Удачи. happy


  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг