Вторник, 08 Октября 2024, 09:42

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос - Ответ (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
частый гость
Сейчас нет на сайте
О как! Спасибо огромное! Очень выручил.

Тогда еще вопрос, как обычно мне кажется - последний smile

Как объекту можно передать параметр?

Есть объект 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]


Спасибо за такие подробности, обычно парой фраз ограничиваются. smile

Я тоже думал это как-то через Id организовать, но не могу прощупать логику создания. Видишь, в чем сложность:

1. У меня есть башни.
2. У каждой башни свой уровень развития, а соответственно сила удара.
3. Объект бомба у меня один для башен любого уровня.
4. Нужно как-то сохранять в самой бомбе уровень развития башни, которая ее выпустила.

Я думал, что это нужно сделать как-то так:
1. Создать глобальный массив массив_соответствия содержащий соответствие силы бомбы уровню башни
2. В момент создания бомбы: сила_бомбы= массив_соответствия[уровень_развития.ближайшая_к_бомбе_башня]
3. В момент удара во врага: жизнь-=other.сила_бомбы

Но никак не получается продумать это в операторах... И ID не понимаю, как к этому прикрутить. sad

Извини, что напрягаю.


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. Бомба запоминает значение глобальной переменной.

Из плюсов - не нужно знать никаких операторов smile :) smile

Только вот вопрос: не возможна ли такая ситуация, что какая-нибудь вторая башня изменит значение этой переменной до того, как первая успеет создать бомбу?


2D NoteWar

Сообщение отредактировал valeko - Пятница, 05 Августа 2011, 00:00
LunarPixelДата: Пятница, 05 Августа 2011, 08:57 | Сообщение # 1972
старожил
Сейчас нет на сайте
Quote (valeko)
не возможна ли такая ситуация, что какая-нибудь вторая башня изменит значение этой переменной до того, как первая успеет создать бомбу?

Да, такая ситуация возможна. Если несколько бомб в комнате располагаются единовременно, то такой способ не подойдет, так как в переменной будет храниться сила только последней созданной бомбы.

Думаю, вариант который я описал, самый простой в данной ситуации. Упростить уже, вроде, нечего, чтобы при этом работало как нужно. smile


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
Поиск:

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