Создание объекта. - Форум
Вторник, 06.12.2016, 20:58
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Разработка игр » Вопросы по game maker » Создание объекта. (Платформер)
Создание объекта.
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
Мастер
Группа: Модераторы
Сообщений: 533
Награды: 0
Репутация: 50
Статус: 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
Олдфаг-Программист
Группа: Постоянный
Сообщений: 241
Награды: 0
Репутация: 26
Статус: Offline
lenalenika, блин, каковы условия создания объекта? Написанное полный бред. Ребят, учите алгоритмизацию!

Run To Life
Visual Basic — пишу свободно
Visual C++ — пишу свободно
Visual C# — пишу свободно(изредка в книжку гляжу)
GML — без гайдов ни строчки
 
XomafokДата: Пятница, 17.07.2015, 13:37 | Сообщение # 5
Известен под логином VS games
Группа: Постоянный
Сообщений: 947
Награды: 2
Репутация: 164
Статус: 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
Бывалый
Группа: Постоянный
Сообщений: 489
Награды: 1
Репутация: 80
Статус: Offline
Засекаешь будильник в Create: Alarm[...] = ??
В событии Alarm[...] создаешь объект и тут же снова засекаешь будильник:  Alarm[...] = ??
Если надо ограничение то создаешь переменную и проверяешь её перед тем как засечь аларм повторно.


Кому нужны саундтреки для ваших игр, обращайтесь..
 
Форум » Разработка игр » Вопросы по game maker » Создание объекта. (Платформер)
Страница 1 из 11
Поиск: