Создание объекта.
|
|
lenalenika | Дата: Четверг, 16.07.2015, 23:05 | Сообщение # 1 |
Начинающий игродел
Группа: Пользователи
Сообщений: 85
Награды: 0
Репутация: 1
Статус: Offline
| Проблема в том что мне нужно создать один объект через определённое время. Например я в Step пишу если ff=1 then instance_create(x,y,ob) он создаёт много таких объектов место 1 ну это понятно почему, он проверяет каждый шаг, вот пробую ещё вот так в Step если ff=1 then alarm[0]=10 а в alarm[0] instance_create(x,y,ob) так вообще не чего не создаётся, ну а если так в Step ff=1 then alarm[0]=1 а в alarm[0] instance_create(x,y,ob) то опять создаётся много объектов я и так ещё пробовал repeat ( 1 ) instance_create(x,y,ob) тоже не добился чего хотел либо вообще объект не создаётся либо накладывается много раз, но в тоже время в Create писать instance_create(x,y,ob) мне не надо, тогда как. Подскажите.
Сообщение отредактировал Volk - Понедельник, 01.02.2016, 14:47 |
|
| |
никита | Дата: Четверг, 16.07.2015, 23:08 | Сообщение # 2 |
Мастер
Группа: Модераторы
Сообщений: 532
Награды: 0
Репутация: 51
Статус: Offline
| Мда, сначала посоветую тебе подучить Русский Язык, а затем уже игры делать. Мало что я понял, но попробуй так: Код if ff=1 { instance_create(x,y,ob); ff=0; }
ВАСЕЧКА - Попугай
|
|
| |
lenalenika | Дата: Четверг, 16.07.2015, 23:23 | Сообщение # 3 |
Начинающий игродел
Группа: Пользователи
Сообщений: 85
Награды: 0
Репутация: 1
Статус: Offline
| Цитата никита ( ) Мда, сначала посоветую тебе подучить Русский Язык, а затем уже игры делать. Мало что я понял А что именно, я всё очень понятно разъяснил, грамотно.
|
|
| |
fdk123 | Дата: Четверг, 16.07.2015, 23:44 | Сообщение # 4 |
Олдфаг-Программист
Группа: Постоянный
Сообщений: 214
Награды: 0
Репутация: 28
Статус: Offline
| lenalenika, блин, каковы условия создания объекта? Написанное полный бред. Ребят, учите алгоритмизацию!
Run To Life Visual Basic — пишу свободно Visual C++ — пишу свободно Visual C# — пишу свободно(изредка в книжку гляжу) GML — без гайдов ни строчки
|
|
| |
Xomafok | Дата: Пятница, 17.07.2015, 13:37 | Сообщение # 5 |
Известен под логином VS games
Группа: Постоянный
Сообщений: 932
Награды: 2
Репутация: 172
Статус: Offline
| Разбор твоего сообщения от 0 до F.
1. Различай понятия "объект" и "экземпляр". Объект - это то, что находится во вкладке Objects (а создавать ресурсы через код, я думаю, тебе еще рановато). Экземпляр - то, что находится в комнате и совершает заданные тобой действия в определенных событиях объекта. Можно создать несколько экземпляров одного объекта, и они будут работать по общему алгоритиу того самого объекта. Рекомендую почитать русскую справку по Game Maker - там попонятнее будт. 2.Цитата lenalenika ( ) Например я в Step пишу если ff=1 then instance_create(x,y,ob) он создаёт много таких объектов место 1 ну это понятно почему, он проверяет каждый шаг, вот пробую ещё вот так в Step если ff=1 then alarm[0]=10 а в alarm[0] instance_create(x,y,ob) так вообще не чего не создаётся А. if ff=1 then instance_create Понятное дело, будет создаваться жкземпляр каждый шаг. Ну это ты и сам понял. Б. if ff=1, then alarm[0]=10. Если ff=1, то каждый шаг alarm[0] будет приравниваться к 10. Alarm[0]-это переменная, и с каждым шагом ее значение становится меньше на один. К примеру 1 шаг. ff=1, alarm[0]=0 -> ff=1, alarm[0]=10. 2 шаг. ff=1, alarm[0]=9 (т.к. прошел один шаг) -> ff=1, alarm[0]=10 (снова присваивается аларму значение 10). 3 шаг - смотри шаг 2. И так до бесконечности. Событие alarm[0] произойдет только тогда, когда переменная alarm[0] будет равна нулю, но она нулем стать не сможет, ибо каждый шаг она равняется десяти. Ну а дабы этот код стал рабочим, пиши так: if ff=1 then alarm[0]=10 ff=0 //(ну или любое другое число, не равное единице). Или: var x3; x3=0 if ff=1 and x3=0 then {alarm[0]=10 x3=100500} //(если ff отвечает за что - нибудь еще). 3.Цитата lenalenika ( ) ff=1 then alarm[0]=1 Опять же, разберу по шагам: 1 шаг ff=1 alarm[0]=0 -> alarm[0]=1 2 шаг ff=1 alarm[0]=0 (т.к.прошел шаг) -> *происходит действие alarm[0]* -> alarm[0]=1 3 шаг смотри шаг 2. 4. Цитата lenalenika ( ) repeat ( 1 ) instance_create(x,y,ob) Вообще бесполезный код. repeat - повторяет какое то действие n раз. У тебя n=1, то есть действие повторяется один раз, то есть происходит тоже самое, что без repeat. А на оптимизацию давит. Немного, но все же.
P.S. Почитай справку. В гугле введи "русская справка по GM", там будет и онлайн справка, и скачать можно.
|
|
| |
lenalenika | Дата: Пятница, 17.07.2015, 15:44 | Сообщение # 6 |
Начинающий игродел
Группа: Пользователи
Сообщений: 85
Награды: 0
Репутация: 1
Статус: Offline
| то есть если например нужно зациклить действие то пишем в Step if ff=1 then alarm[0]=10 ff=0 а в alarm[0] // какое либо действие // и чтобы он зациклилось alarm[0]= // 5 например//
|
|
| |
GoodWin | Дата: Пятница, 17.07.2015, 15:54 | Сообщение # 7 |
Бывалый
Группа: Постоянный
Сообщений: 473
Награды: 1
Репутация: 80
Статус: Offline
| Засекаешь будильник в Create: Alarm[...] = ?? В событии Alarm[...] создаешь объект и тут же снова засекаешь будильник: Alarm[...] = ?? Если надо ограничение то создаешь переменную и проверяешь её перед тем как засечь аларм повторно.
Кому нужны саундтреки для ваших игр, обращайтесь..
|
|
| |