Понедельник, 25 Ноября 2024, 21:25

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Как установить задержку между созданием объектов?
AkopovДата: Среда, 12 Июня 2013, 14:25 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
GM 8.1pro. Есть комната, в которой есть объект o_hero и при нажатии клавиши Ctrl создаётся объект o_ammo. o_ammo движется вверх, и получается, что зажав Ctrl игрок получает беспрерывную цепочку объектов. Так вот, надо сделать так, чтобы создаваемый объект при нажатии клавиши Ctrl создавался повторно только через 0,5сек. Как такое устроить? Если можно, то поподробнее, я новичок в ГМ.
OverdraveДата: Среда, 12 Июня 2013, 14:37 | Сообщение # 2
частый гость
Сейчас нет на сайте
Ранее, в другой теме, я уже писал, как использовать переменную-"блокер". Хорошо, напишу снова...

CREATE
Код

shot_lock=0 //объявление переменной-блокера
alarm_lock=0 //Переменная нужна лишь для второго способа


STEP
Код

if keyboard_check(vk_ctrl) and shot_lock=0 //Если нажата клавиша Ctrl и блокер выключен, т.е. равен нулю, то...
{
instance_create(o_ammo,x,y) //Создание пули, в самой пуле уже задавай направление движения. Пуля создаётся один раз.
shot_lock=1 //блочим
}


Разблокирование этой переменной двумя способами (вводить в тот же STEP):
1)При отпускании Ctrl
Код

if keyboard_check_released(vk_ctrl) and shot_lock=1 //когда отпускаем Ctrl, переменная снова становится равна нулю
shot_lock=0


2)Небольшой откат
Код
if shot_lock=1 and alarm_lock=0
{
alarm[0]=room_speed //откат равен 1 секунде. Можно ввести любое число в кол-ве шагов
alarm_lock=1
}
, а в Alarm 0 вбить
Код

shot_lock=0
alarm_lock=0


P.S: Мог напутать с названием Ctrl в коде (может быть, не vk_ctrl, а vk_control?..)
AkopovДата: Среда, 12 Июня 2013, 15:10 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
всё работает, большое спасибо)

Сообщение отредактировал Akopov - Среда, 12 Июня 2013, 15:14
FadeBakerДата: Среда, 12 Июня 2013, 15:44 | Сообщение # 4
JavaSE Game Developer
Сейчас нет на сайте
Overdrave, джеки_чан.жпг

Create:
Код
shoot_lock = 0;

Step:
Код
shoot_lock += 1;
if (keyboard_check(vk_ctrl)) {
    if (shoot_lock mod (room_speed / 2) == 0) {
       instance_create(o_ammo, x, y);
    }
}


Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
YellowAfterlifeДата: Среда, 12 Июня 2013, 15:46 | Сообщение # 5
Сейчас нет на сайте
Можно упростить код и дальше. Это уже получается минималистичная симуляция таймера.
Create
Код
cooldown = 0 // "нагрев" оружия. если 0 то можно стрелять

Step
Код
if (cooldown > 0) cooldown -= 1 // "остывание" оружия со временем
if (keyboard_check(vk_control) && (cooldown <= 0)) { // если нажата кнопка и оружие уже "остыло"
     cooldown = room_speed / 2 // пол секунды, в шагах.
     instance_create(x, y, o_ammo) // собственно создание пули
}


FadeBakerДата: Среда, 12 Июня 2013, 16:23 | Сообщение # 6
JavaSE Game Developer
Сейчас нет на сайте
Цитата (YellowAfterlife)
vk_control

Надо же, я уже и позабывал названия констант.


Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
  • Страница 1 из 1
  • 1
Поиск:

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