Вторник, 08 Октября 2024, 07:32

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос - Ответ (Game Maker)
LunarPixelДата: Вторник, 09 Августа 2011, 21:11 | Сообщение # 2001
старожил
Сейчас нет на сайте
Уайльд, можно и по другому сделать.
Использовать draw_sprite_part_ext.
Рисуешь спрайт, который будет хелзбаром, например эллипс. Например размер его 128х32.
Заводишь переменную jizni=128

в событии draw пишешь:
draw_sprite_part_ext(sprite_index,0,0,0,jizni,32,x,y,1,1,c_white,1)
Таким образом при уменьшении переменной jizni, спрайт будет обрезаться справа и уменьшаться, как хелзбар.
Для того чтобы менять цвет, можно использовать режимы смешивания, но можно и по другому сделать. Создать анимацию смены цвета на 128 спрайтов. (есть такая опция в настройках спрайта, которая позволит сделать это быстро Animation->Colorize)
И видоизмени код немного:

draw_sprite_part_ext(sprite_index,128-jizni,0,0,jizni,32,x,y,1,1,c_white,1)

Таким образом будет работать совсем как хелзбар.

Одно НО, как видно количество жизней будет зависит от размера спрайта, но тут можно найти выход. Использовать проценты например. Т.е. взять 128 за 100% и на основе этого отнимать жизни в процентах. Если что то не понятно будет, могу сделать пример. smile


Лер_да_РимДата: Вторник, 09 Августа 2011, 21:27 | Сообщение # 2002
заслуженный участник
Сейчас нет на сайте
Можно заюзать gex-расширение circle healthbar.

Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.

УайльдДата: Среда, 10 Августа 2011, 14:53 | Сообщение # 2003
участник
Сейчас нет на сайте
ответившие мне, завтра все попробую, обязательно сообщу о результатах=)

Добавлено (10.08.2011, 13:19)
---------------------------------------------
AicedorMan,
ERROR in
action number 1
of Draw Event
for object object0:

Error in code at line 2:
sv=c;
^
at position 6: Unknown variable c

LunarPixel, можно примерчик? Анимацию перехода цвета не обязательно =)

Добавлено (10.08.2011, 14:53)
---------------------------------------------
решила попробовать сделать виртуальное пианино. Вроде нормально, но вот аккорды сделать не получается. Звучит только по отдельности.

как можно исправить?


Лер_да_РимДата: Среда, 10 Августа 2011, 15:10 | Сообщение # 2004
заслуженный участник
Сейчас нет на сайте
Фоновая музыка. Вся проблема в ней.

Так как при начале воспроизведения фоновой музыки играющая останавливается.


Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.



Сообщение отредактировал Лер_да_Рим - Среда, 10 Августа 2011, 15:13
LunarPixelДата: Среда, 10 Августа 2011, 20:44 | Сообщение # 2005
старожил
Сейчас нет на сайте
Уайльд, у меня интернет сейчас нехороший, для примерчиков.

Собственно, весь пример ограничивается парой строк кода. Создай спрайт, размером 128х32.
Создай объект.
В событии Create напиши:
jizni=128
В событии Draw напиши:
draw_sprite_part_ext(sprite0,0,0,0,jizni,32,x,y,1,1,c_white,1)
Ну и например в событии нажатия на какую нибудь клавишу напиши:
jizni-=1

И всё smile


УайльдДата: Среда, 10 Августа 2011, 22:52 | Сообщение # 2006
участник
Сейчас нет на сайте
LunarPixel, спасибо. У меня тоже с интернетом туго.

Лер_да_РимДата: Четверг, 11 Августа 2011, 07:15 | Сообщение # 2007
заслуженный участник
Сейчас нет на сайте
Эээ, а что с музыкой-то?

Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.

УайльдДата: Четверг, 11 Августа 2011, 07:55 | Сообщение # 2008
участник
Сейчас нет на сайте
Лер_да_Рим, фигово с музыкой.

Лер_да_РимДата: Четверг, 11 Августа 2011, 08:04 | Сообщение # 2009
заслуженный участник
Сейчас нет на сайте
У меня заработало всё вполне нормально.

Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.

valekoДата: Четверг, 11 Августа 2011, 10:49 | Сообщение # 2010
частый гость
Сейчас нет на сайте
Очень простой вопрос.

Не могу разобраться толком с алармом.

1. Он задерживает весь объект или только то событие в котором размещен?
2. Зачем их так много.
3. Можно ли используя аларм сделать такую задержку, чтобы объект не стрелял, но перемещение врага отслеживал.


2D NoteWar
LunarPixelДата: Четверг, 11 Августа 2011, 11:05 | Сообщение # 2011
старожил
Сейчас нет на сайте
valeko, alarm - это таймер. Т.е. он служит, чтобы какое либо действие выполнялось через определенное время.

Например в событии Create пишешь:
alarm[0]=90 // запускаем нулевой таймер на 3 секунды (1 секунда = скорость комнаты, стандартно это 30)

Создаем событие Alarm 0 и пишем там:
show_message('таймер сработал')

Таким образом через 3 секунды у нас появится сообщение о том, что таймер сработал. Всё просто. smile




Сообщение отредактировал LunarPixel - Четверг, 11 Августа 2011, 11:11
valekoДата: Четверг, 11 Августа 2011, 11:38 | Сообщение # 2012
частый гость
Сейчас нет на сайте
Quote (LunarPixel)
alarm - это таймер. Т.е. он служит, чтобы какое либо действие выполнялось через определенное время.


Подожди... Если я правильно понял, то alarm - это не задержка (ну, типа delay). Т.е. я его инициирую в любой части кода, и через нужное мне время выполнится то, что прописано в самом alarm?
Вот же блин... А то я все думаю, чего мне им так пользоваться неудобно smile


2D NoteWar
LunarPixelДата: Четверг, 11 Августа 2011, 11:43 | Сообщение # 2013
старожил
Сейчас нет на сайте
valeko, да, ты все правильно понял. smile

valekoДата: Четверг, 11 Августа 2011, 13:07 | Сообщение # 2014
частый гость
Сейчас нет на сайте
Вопрос:

Если пуля вылетела из башни дальше определенной длины - она уничтожается. Изначально измерял расстояние до ближайшей башни.
if (distance_to_object(instance_nearest(x,y,turel)) > dlina_poleta ) instance_destroy()

Но с увеличением мощности башни это уже не срабатывает, т.к. пуля успевает пролететь до другой башни и та становится ближайшей.

При создании пули я сохраняю ID башни, которая ее создала:
id_puli=instance_create(x,y,pulia)
id_puli.id_tureli=id


Как мне изменить код, чтобы мерять длину до нужной мне башни?

Спасибо.


2D NoteWar

Сообщение отредактировал valeko - Четверг, 11 Августа 2011, 13:07
SalahAdDinДата: Четверг, 11 Августа 2011, 21:07 | Сообщение # 2015
постоянный участник
Сейчас нет на сайте
Quote (valeko)
if (distance_to_object(id_tureli) > dlina_poleta ) instance_destroy()

Добавлено (11.08.2011, 21:07)
---------------------------------------------
если эта переменная действительно хранит айди турели smile
какое то странное у тебя определение айди башни, есть мнение что там нифига не айди этой самой башни)


Фотошоп это не сложно. Немного теории, полезной на практике:
Работа с наложением текстур
Рисуем без планшета
BrightSpotДата: Четверг, 11 Августа 2011, 21:36 | Сообщение # 2016
заслуженный участник
Сейчас нет на сайте
Quote (SalahAdDin)
есть мнение что там нифига не айди этой самой башни)

если честно бред... id турели может задаваться в переменную, например, при создании той самой пули...
а дальше уже из переменной берется id правильной башни=)



Более мощный компьютер глючит быстрее и точнее.


Сообщение отредактировал BrightSpot - Четверг, 11 Августа 2011, 21:36
LunarPixelДата: Четверг, 11 Августа 2011, 21:43 | Сообщение # 2017
старожил
Сейчас нет на сайте
Всё у него правильно.

У башни пишем:
id_puli=instance_create(x,y,pulia) //записываем в переменную id созданной пули
id_puli.id_tureli=id //записываем у созданной пули в переменную id башни, которая создала эту пулю.

А дальше у пули пишем то, что написал SalahAdDin. smile


valekoДата: Пятница, 12 Августа 2011, 00:44 | Сообщение # 2018
частый гость
Сейчас нет на сайте
О, спасибо уважаемые, все заработало.

2D NoteWar
SalahAdDinДата: Пятница, 12 Августа 2011, 08:52 | Сообщение # 2019
постоянный участник
Сейчас нет на сайте
Quote (BrightSpot)
если честно бред... id турели может задаваться в переменную, например, при создании той самой пули...
а дальше уже из переменной берется id правильной башни=)

Ой, спасибо кЭп smile
Quote (LunarPixel)
У башни пишем:

А я судорожно искал айди башни в этой самой пуле smile
Конечно, теперь все выглядит правильно.


Фотошоп это не сложно. Немного теории, полезной на практике:
Работа с наложением текстур
Рисуем без планшета
valekoДата: Суббота, 13 Августа 2011, 18:18 | Сообщение # 2020
частый гость
Сейчас нет на сайте
Как получить реальную скорость объекта, движущегося по пути, учитывая, что при создании пути в некоторых точках коэффициент скорости не равен 100%.

Спасибо.

UPD: Спасибо всем, не успевшим ответить, я уже сам разобрался smile

path_get_speed(path_index,path_position)*path_speed

// коэффициент скорости пути с текущим индексом в текущей позиции * скорость объекта на пути


2D NoteWar

Сообщение отредактировал valeko - Суббота, 13 Августа 2011, 19:29
Поиск:

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