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 раз. А первый пример отлично подхоит еще и для пулеметной стрельбы.
|
|
| |