Вторник, 08 Октября 2024, 05:33

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос - Ответ (Game Maker)
УайльдДата: Воскресенье, 14 Августа 2011, 18:09 | Сообщение # 2021
участник
Сейчас нет на сайте
valeko, молодец.

Ребаят, тут меня замучил уже вопрос. Как сделать бонус? Подобрал, значит, герой, какой-то объект и начал бегать быстрей. Но через некоторое время действие бонуса кончается, и герой бегает с той скоростью, что была до того, как он подобрал объект.

Добавлено (14.08.2011, 18:08)
---------------------------------------------
Ребят*

Добавлено (14.08.2011, 18:09)
---------------------------------------------
С моб.вида сообщение не отредактировать.


GameMixДата: Воскресенье, 14 Августа 2011, 19:16 | Сообщение # 2022
старожил
Сейчас нет на сайте
Quote (Уайльд)
Ребаят, тут меня замучил уже вопрос. Как сделать бонус? Подобрал, значит, герой, какой-то объект и начал бегать быстрей. Но через некоторое время действие бонуса кончается, и герой бегает с той скоростью, что была до того, как он подобрал объект.

Допустим, стандартная скорость игрока - 4;
В событии столкновения игрока с бонусом:
Code
speed = 8; alarm[0] = room_speed*кол-во_секунд действия бонуса;

В событии столкновения бонуса с игроком:
Code
instance_destroy();

В событии Alarm0 (в объекте игрока):
Code
speed = 4;


Steel Standoff - 2D аркада.
Мои статьи
УайльдДата: Воскресенье, 14 Августа 2011, 19:43 | Сообщение # 2023
участник
Сейчас нет на сайте
аТнОтХоАн, такое можно сделать с любым придуманным бонусом?

Добавлено (14.08.2011, 19:43)
---------------------------------------------
Хм... что-то скорость не изменилась... или мне кажется....


GameMixДата: Воскресенье, 14 Августа 2011, 19:45 | Сообщение # 2024
старожил
Сейчас нет на сайте
Quote (Уайльд)
такое можно сделать с любым придуманным бонусом?

Не думаю, что мой код универсален.

Quote (Уайльд)
Хм... что-то скорость не изменилась... или мне кажется....

Если что, кидай получившееся в исходник и сюда его. Разберёмся. happy


Steel Standoff - 2D аркада.
Мои статьи
valekoДата: Воскресенье, 14 Августа 2011, 20:33 | Сообщение # 2025
частый гость
Сейчас нет на сайте
Я так понял, что вопрос не в том, как на какое-то время изменить переменную smile

Скорее всего его интересует универсальных механизм бонусов, о которых ты заранее не знаешь, что он в себе содержит.

Типа ситуации: взял ускорение, когда оно почти закончилось, взял еще одно ускорение - время ускорения продлилось, а потом взял еще и невидимость - ускорение закончилось, а невидимость все еще есть.


2D NoteWar
фурилонДата: Воскресенье, 14 Августа 2011, 21:09 | Сообщение # 2026
У котэ свой движок. А у тебя?!
Сейчас нет на сайте
В версии 8,1 как добавить скрипт в событие?


Если ты стоишь на краю пропасти и думаешь прыгать или нет, то лучше прыгнуть. (с) Джон Леннон
УайльдДата: Воскресенье, 14 Августа 2011, 21:49 | Сообщение # 2027
участник
Сейчас нет на сайте
Quote
Если что, кидай получившееся в исходник и сюда его. Разберёмся.

аТнОтХоАн, вот исходник -


Лер_да_РимДата: Воскресенье, 14 Августа 2011, 22:29 | Сообщение # 2028
заслуженный участник
Сейчас нет на сайте
Уайльд, совет тебе:
Когда что-то не рабит, а что - непонятно, то выводи на экран все изменяемые в этой задаче переменные. Вывел speed - она обнуляется при остановке движения.

Предлагаю использовать дополнительную локальную переменную скорости. И юзать direction. И (это уже так, просто придраться) изменять image_xscale вместо смены двух по сути одинаковых спрайтов (спрайт и его отражение по горизонтали).


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

SaiteiДата: Воскресенье, 14 Августа 2011, 22:58 | Сообщение # 2029
старожил
Сейчас нет на сайте
В сотый раз спрошу - как сделать так, чтобы музыка проигрывалась из определенной папки? Это я к тому, чтобы пользователь мог загрузить в игру свой список треков и играл как душе угодно smile
valekoДата: Понедельник, 15 Августа 2011, 02:48 | Сообщение # 2030
частый гость
Сейчас нет на сайте
Уайльд, аТнОтХоАн правильно про скорость написал:
Quote (аТнОтХоАн)
speed = 8; alarm[0] = room_speed*кол-во_секунд действия бонуса;


Но, чтобы сделать механизм универсальным, ты все равно должен продумать, какие бонусы у тебя будут. smile

Объект бонус можно сделать 1. Отличаться между собой бонусы будут индексом.

1. Скорость
2. Сила
3. Размер
..
9. Невидимость и т.д.

Рисуем все бонусы в 1 анимированый гиф и выводим спрайт бонуса так:

draw_sprite_ext(bonus,index,x,y,1,1,image_angle,c_white,1) // бонус - название спрайта, индекс - номер кадра в спрайте.

Предположим, что параметры этих бонусов заранее не известны, изменяются случайным образом. Тогда нужно их как-то получать из самого бонуса при столкновении.

В итоге код в событии Collision персонажа (а не бонуса!) будет следующим:

switch (other.index) // проверяем переменную индекс другого объекта, участвующего в столкновении
{
case 1: // скорость
old_speed=speed; speed=other.new_speed; alarm[1]=other.time; break;
// запоминаем текущую скорость, присваиваем нашему персонажу новую скорость

case 2: // сила
old_power=power; power=other.new_power; alarm[2]=other.time; break;
// запоминаем текущую силу, присваиваем нашему персонажу новую силу

..

case 9: // невидимость
invisibility=true; alarm[9]=other.time; break;
// включаем невидимость

}


А в соответствующих Alarm восстанавливаешь значения, бывшие до бонуса

Alarm[1]:
speed=old_speed;


Правда, здесь я не продумал действие 2 одинаковых бонусов взятых подряд. Есть несколько вариантов - самый простой и логичной, завести еще флаги по типу: если такой бонус взят, то пока его не брать, а алярме флаг убирать при восстановлении параметра.

Надеюсь, понятно объяснил.


2D NoteWar

Сообщение отредактировал valeko - Понедельник, 15 Августа 2011, 02:48
GameMixДата: Понедельник, 15 Августа 2011, 05:50 | Сообщение # 2031
старожил
Сейчас нет на сайте
valeko, поправлю. Не index, а object_index - индекс объекта.

Добавлено (15.08.2011, 05:50)
---------------------------------------------

Quote (valeko)
Но, чтобы сделать механизм универсальным, ты все равно должен продумать, какие бонусы у тебя будут.

Кому это адресовано?


Steel Standoff - 2D аркада.
Мои статьи
valekoДата: Понедельник, 15 Августа 2011, 09:59 | Сообщение # 2032
частый гость
Сейчас нет на сайте
Quote (аТнОтХоАн)
Не index, а object_index - индекс объекта.


Ну или bonus_index - это же всего лишь переменная, которая бонусу при создании присваивается.

А адресовано Уайльду


2D NoteWar
Лер_да_РимДата: Понедельник, 15 Августа 2011, 11:57 | Сообщение # 2033
заслуженный участник
Сейчас нет на сайте
valeko, вообще-то это женщина.

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

УайльдДата: Понедельник, 15 Августа 2011, 13:26 | Сообщение # 2034
участник
Сейчас нет на сайте
Ничего не поняла.
Я вообще пробовала через переменные. Типа cull, В событии создания объекта, равно 0. А при столкновений с o_bonus, cull равно 4(ну, или другое число). В событие шага если cull больше 0, то скорость равна 8 и каждый шаг отимается по одному cull. А когда переменная
снова меньше нуля, то скорость равна 4.

Все это было прописано соответствующими ф-циями, кодом...


SaiteiДата: Понедельник, 15 Августа 2011, 13:40 | Сообщение # 2035
старожил
Сейчас нет на сайте
Quote (Arz)
В сотый раз спрошу - как сделать так, чтобы музыка проигрывалась из определенной папки? Это я к тому, чтобы пользователь мог загрузить в игру свой список треков и играл как душе угодно smile

вопрос актуален
valekoДата: Понедельник, 15 Августа 2011, 14:37 | Сообщение # 2036
частый гость
Сейчас нет на сайте
Quote (Лер_да_Рим)
valeko, вообще-то это женщина.


Теперь уже вижу. smile


2D NoteWar
фурилонДата: Понедельник, 15 Августа 2011, 14:45 | Сообщение # 2037
У котэ свой движок. А у тебя?!
Сейчас нет на сайте
Как убрать в ГМ надпись во время самой игры- сделано с ГМ ( на англ ) и при загрузке игры так же в углу убрать надпись? Оплатить? Куда сколько? Подскажите плиз)


Если ты стоишь на краю пропасти и думаешь прыгать или нет, то лучше прыгнуть. (с) Джон Леннон
Лер_да_РимДата: Понедельник, 15 Августа 2011, 14:59 | Сообщение # 2038
заслуженный участник
Сейчас нет на сайте
фурилон, крякни) ну или если оплатить - $40.

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

УайльдДата: Понедельник, 15 Августа 2011, 15:10 | Сообщение # 2039
участник
Сейчас нет на сайте
фурилон, зачем платить-то? Это крайности... А какой ГМ? 8.0 или 8.1?

Добавлено (15.08.2011, 15:06)
---------------------------------------------

Quote (Лер_да_Рим)
фурилон, крякни)

Вот-вот. Учись! biggrin

Добавлено (15.08.2011, 15:10)
---------------------------------------------
Arz,

Quote (Arz)
В сотый раз спрошу - как сделать так, чтобы музыка проигрывалась из определенной папки? Это я к тому, чтобы пользователь мог загрузить в игру свой список треков и играл как душе угодно smile

вопрос актуален


ждать LunarPixel!


SaiteiДата: Понедельник, 15 Августа 2011, 15:13 | Сообщение # 2040
старожил
Сейчас нет на сайте
Quote (Уайльд)

ждать LunarPixel!

Подожду-с
Поиск:

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