Вторник, 14 Мая 2024, 20:48

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Записи участника » SpaceOwl [1]
Результаты поиска
SpaceOwlДата: Вторник, 30 Июня 2020, 13:53 | Сообщение # 1 | Тема: помогите написать код
уже был
Сейчас нет на сайте
Я аж зарегистрировался на форуме для ответа, так что - цени)
Ключи у тебя отнимаются, потому что команду global.blackkey=global.blackkey-1 ничего не ограничивает. То есть ты встал на яму и каждый игровой шаг (1/60 секунды) отнимается по ключу.
Я вижу 2 очевидных варианта решения твоей задачи.
1. Если тебе нужно чтобы ключ отнимался каждый раз как встаешь на яму.
В Create создаешь переменную couldown = 0; она будет ограничивающим таймером.
В Step пишешь
couldown -= 1; //каждый игровой шаг отнимать 1
if place_meeting(x,y,Grid) && couldown<0
{
if (global.blackkey>0)
{
global.blackkey -= 1;
couldown = 120;
}
}
Таким макаром пока ты стоишь на яме, каждые 2 секунды будет отниматься по 1 ключу, пока ключи вообще есть. Время можешь подставить любое.

2. Зашел на яму = -1 ключ. Зашел снова = еще -1.

Опять же, в Create ямы создаешь переменную, скажем,
timer = 1;
И реальный таймер типа
alarm_set(0,60);
Теперь создаешь событие таймера и прописываешь
if !place_meeting(x,y,Player) && timer == 0 //если не трогает игрока и таймер равен нулю
{timer = 1;}
alarm_set(0,60); //перезапускаешь таймер.

В Collision игроку пишешь что-то типа

if (global.blackkey>0) && other.timer == 1
{
global.blackkey -= 1;
other.timer = 0;
}
Вообще такие ограничивающие переменные часто используются когда тебе нужно чтобы что то произошло 1 раз. А первый пример отлично подхоит еще и для пулеметной стрельбы.
Форум игроделов » Записи участника » SpaceOwl [1]
  • Страница 1 из 1
  • 1
Поиск:

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