Вопрос - Ответ (Game Maker)
| |
valeko | Дата: Среда, 03 Августа 2011, 21:04 | Сообщение # 1961 |
частый гость
Сейчас нет на сайте
| Quote (SalahAdDin) Во первых алярм нужно чем то вызвать. Напиши например в криэйт alarm[0]=1 а далее в алярме то, что тебе нужно и зацикливай.
смотри пункт 4.4.
Quote (valeko) 4.4. Пишу в Create alarm[0] = 300; - никакого эффекта. Думаю больше часа. Пробую. Ничего не получается.
2D NoteWar
Сообщение отредактировал valeko - Среда, 03 Августа 2011, 21:06 |
|
| |
SalahAdDin | Дата: Среда, 03 Августа 2011, 21:17 | Сообщение # 1962 |
постоянный участник
Сейчас нет на сайте
| У меня все работает. Уверен что нигде не ошибся в коде?
Фотошоп это не сложно. Немного теории, полезной на практике: Работа с наложением текстур Рисуем без планшета
|
|
| |
valeko | Дата: Четверг, 04 Августа 2011, 00:29 | Сообщение # 1963 |
частый гость
Сейчас нет на сайте
| Уже не знаю - переписал весь код заново и все заработало правильно.
2D NoteWar
|
|
| |
Лер_да_Рим | Дата: Четверг, 04 Августа 2011, 07:44 | Сообщение # 1964 |
заслуженный участник
Сейчас нет на сайте
| Наверняка случайно где-нибудь ошибся... Бывает.
Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.
|
|
| |
valeko | Дата: Четверг, 04 Августа 2011, 12:39 | Сообщение # 1965 |
частый гость
Сейчас нет на сайте
| Согласен, что бывает. Только обидно, когда мешает не отсутствие логики, а просто незнание каких-то нюансов.
Вот, например, пытаюсь организовать вывод текста:
draw_set_font(0) // устанавливаю шрифт, который назначил по умолчанию make_color_rgb(0,5,212) // задаю нужный мне синий цвет draw_text(20,20,gold) // вывожу переменную
Выводится. Нужным шрифтом. Но цвет - черный.
Что не так? Или есть еще какой-то секретный оператор меняющий цвет именно для текста?
2D NoteWar
|
|
| |
LunarPixel | Дата: Четверг, 04 Августа 2011, 12:51 | Сообщение # 1966 |
старожил
Сейчас нет на сайте
| valeko, за установку цвета отвечает функция draw_set_color(цвет) В твоем случае будет так: draw_set_color(make_color_rgb(0,5,212))
|
|
| |
valeko | Дата: Четверг, 04 Августа 2011, 13:47 | Сообщение # 1967 |
частый гость
Сейчас нет на сайте
| О как! Спасибо огромное! Очень выручил.
Тогда еще вопрос, как обычно мне кажется - последний
Как объекту можно передать параметр?
Есть объект Bomba. Как можно извратиться сделав что-нибудь типа Bomba(5) и Bomba (22), чтобы у первой бомбы была сила удара 5, а у второй, соответственно 22.
Задача усложняется тем, что проверка происходит со стороны врага. Типа если Vrag столкнулся с Bomba(5), то его жизнь уменьшается на это число.
2D NoteWar
|
|
| |
LunarPixel | Дата: Четверг, 04 Августа 2011, 14:02 | Сообщение # 1968 |
старожил
Сейчас нет на сайте
| valeko, ну тут разные варианты можно рассматривать.
Как самый простой. У бомбы сделать переменную sila=choose(5,22,34,125...........), функция choose случайным образом выберет значение из предложенных в скобках. Таким образом у каждой бомбы будет случайная сила атаки. У врага в столкновении с бомбой пишешь: health-=other.sila Таким образом от жизней врага отнимется сила бомбы.
Если нужно точно указать для каждой бомбы силу, то можно использовать instance_id[n]. Она хранит id образца объекта под указанным номером.
в событии создания у бомбы можно прописать:
if id=instance_id[0] sila=10 if id=instance_id[1] sila=20
Первая поставленная бомба будет иметь силу 10, а вторая силу 20. Так можно расписать для всех бомб, если их много, то лучше использовать циклы.
Например так:
for (i=0; i<10; i+=1) if id=instance_id[i] { sila=10 exit }
for (i=10; i<20; i+=1) if id=instance_id[i] { sila=20 exit }
Первые десять бомб будут иметь силу 10, остальные (в данном случае до 20 штук), будут иметь силу 20.
Затем, как я писал выше, у врага в столкновении с бомбой пишешь: health-=other.sila
Сообщение отредактировал LunarPixel - Четверг, 04 Августа 2011, 14:20 |
|
| |
valeko | Дата: Четверг, 04 Августа 2011, 17:49 | Сообщение # 1969 |
частый гость
Сейчас нет на сайте
| Quote (LunarPixel) if id=instance_id[0]
Спасибо за такие подробности, обычно парой фраз ограничиваются.
Я тоже думал это как-то через Id организовать, но не могу прощупать логику создания. Видишь, в чем сложность:
1. У меня есть башни. 2. У каждой башни свой уровень развития, а соответственно сила удара. 3. Объект бомба у меня один для башен любого уровня. 4. Нужно как-то сохранять в самой бомбе уровень развития башни, которая ее выпустила.
Я думал, что это нужно сделать как-то так: 1. Создать глобальный массив массив_соответствия содержащий соответствие силы бомбы уровню башни 2. В момент создания бомбы: сила_бомбы= массив_соответствия[уровень_развития.ближайшая_к_бомбе_башня] 3. В момент удара во врага: жизнь-=other.сила_бомбы
Но никак не получается продумать это в операторах... И ID не понимаю, как к этому прикрутить.
Извини, что напрягаю.
2D NoteWar
Сообщение отредактировал valeko - Четверг, 04 Августа 2011, 17:56 |
|
| |
LunarPixel | Дата: Четверг, 04 Августа 2011, 17:59 | Сообщение # 1970 |
старожил
Сейчас нет на сайте
| valeko, ну тогда проблемы вообще нет особо.
В башне у тебя допустим есть переменная level, которая за уровень отвечает. В зависимости от этой переменной меняется сила бомбы.
Заведи переменную bomb=0 У объекта бомбы (obj_bomb) заведи переменную sila.
Там где у тебя бомба создается (в объекте башня), пиши так: bomb=instance_create(x,y,obj_bomb) // в переменную bomb записываем id созданной бомбы
//далее в зависимости от уровня башни в которой бомба создается, меняем силу бомбы (обращаясь к переменной bomb, которая id созданной бомбы хранит)
if level=1 bomb.sila=10 if level=2 bomb.sila=20 ......
ну или так bomb.sila=level*10
Зависит от того, как у тебя сила от уровня башни зависит.
Короче, таким образом у созданной бомбы будет сила в зависимости от уровня башни, которая эту бомбу создала.
Сообщение отредактировал LunarPixel - Четверг, 04 Августа 2011, 18:01 |
|
| |
valeko | Дата: Четверг, 04 Августа 2011, 20:13 | Сообщение # 1971 |
частый гость
Сейчас нет на сайте
| Честь и хвала тебе, о великий мегагуру LunarPixel!
Радостно убежал примерять открывшиеся возможности.
Хотя вот еще мысль появилась, как думаешь, не очень безграмотно?
1. Глобальная переменная сила_бомбы 2. Башня перед созданием бомбы присваивает значение глобальной переменной 3. Бомба запоминает значение глобальной переменной.
Из плюсов - не нужно знать никаких операторов :)
Только вот вопрос: не возможна ли такая ситуация, что какая-нибудь вторая башня изменит значение этой переменной до того, как первая успеет создать бомбу?
2D NoteWar
Сообщение отредактировал valeko - Пятница, 05 Августа 2011, 00:00 |
|
| |
LunarPixel | Дата: Пятница, 05 Августа 2011, 08:57 | Сообщение # 1972 |
старожил
Сейчас нет на сайте
| Quote (valeko) не возможна ли такая ситуация, что какая-нибудь вторая башня изменит значение этой переменной до того, как первая успеет создать бомбу? Да, такая ситуация возможна. Если несколько бомб в комнате располагаются единовременно, то такой способ не подойдет, так как в переменной будет храниться сила только последней созданной бомбы.
Думаю, вариант который я описал, самый простой в данной ситуации. Упростить уже, вроде, нечего, чтобы при этом работало как нужно.
|
|
| |
arthur33 | Дата: Пятница, 05 Августа 2011, 12:50 | Сообщение # 1973 |
участник
Сейчас нет на сайте
| Сорри за оффтоп:
- Опыт - это то, что получаешь, не получив того, чего хотел. Новая головоломка
Сообщение отредактировал arthur33 - Пятница, 05 Августа 2011, 12:51 |
|
| |
LunarPixel | Дата: Суббота, 06 Августа 2011, 08:42 | Сообщение # 1974 |
старожил
Сейчас нет на сайте
| arthur33,
|
|
| |
masb8lyGC | Дата: Суббота, 06 Августа 2011, 17:47 | Сообщение # 1975 |
был не раз
Сейчас нет на сайте
| Только начал осваивать Гамак. Подскажите, как анимировать персонажа. Тоесть как сделать чтобы кадры при беге сменялись?) Заранее спасибо!
|
|
| |
миха | Дата: Суббота, 06 Августа 2011, 17:59 | Сообщение # 1976 |
почти ветеран
Сейчас нет на сайте
| Там при создании спрайта можно делать несколько кадров. Вот и анимируй.
|
|
| |
elis1112 | Дата: Понедельник, 08 Августа 2011, 14:04 | Сообщение # 1977 |
Igni et ferro
Сейчас нет на сайте
| Quote (masb8lyGC) Подскажите, как анимировать персонажа. Тоесть как сделать чтобы кадры при беге сменялись?) Заранее спасибо! сделай 2 спрайта 1.стоит персонаж 2.Персонаж бежит. Для этого используй при открытие массовое выделение спрайтов или загрузи в правильном порядке через панель edit во время нажатие клавиши бега в событиях используй смену спрайта
|
|
| |
valeko | Дата: Понедельник, 08 Августа 2011, 15:59 | Сообщение # 1978 |
частый гость
Сейчас нет на сайте
| Как организовать одновременное уменьшение жизни у определенного количества врагов в зоне достижимости объекта? Как убить всех в определенно радиусе - разобрался, а как уменьшить переменную отвечающую за жизнь у определенного количества врагов не могу придумать.
2D NoteWar
|
|
| |
GameMix | Дата: Понедельник, 08 Августа 2011, 16:05 | Сообщение # 1979 |
старожил
Сейчас нет на сайте
| valeko, так же как убивать, только вместо instance_destroy() поставь код: Code переменная -= сколько отнять
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
valeko | Дата: Понедельник, 08 Августа 2011, 23:50 | Сообщение # 1980 |
частый гость
Сейчас нет на сайте
| Не, не получится. И с уничтожением я тоже ошибся. Думал использовать position_destroy(x,y), но он проверяет конкретную точку, а мне нужно на дистанции поражения, т.е. все объекты, попадающие в окружность. Не могу продумать, как это организовать.
1. Есть башня, которая стреляет по всему, что попадает в зону ее поражения. 2. Поражать она может, например 5 объектов. 3. При поражении переменная, отвечающая за жизнь врага уменьшается на определенную величину. 4. Шестой объект не поражается. 5. Башня перезаряжается определенное время.
Как сделать, чтобы враг, попавший между 2 такими башнями, получал поражение от каждой из них соответствующее уровню развития башни.Добавлено (08.08.2011, 23:50) --------------------------------------------- И еще с наследованием не понятно.
Если есть объект, как на его основе создать потомка и как к ним потом обращаться?
2D NoteWar
|
|
| |
|