Результаты поиска
| |
Overdrave | Дата: Среда, 12 Июня 2013, 14:37 | Сообщение # 41 | Тема: Как установить задержку между созданием объектов? |
частый гость
Сейчас нет на сайте
| Ранее, в другой теме, я уже писал, как использовать переменную-"блокер". Хорошо, напишу снова...
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?..)
|
|
| |
Overdrave | Дата: Вторник, 11 Июня 2013, 21:48 | Сообщение # 42 | Тема: Изменение переменной по нажатию |
частый гость
Сейчас нет на сайте
| В одном из примеров увидел интересный триггер, который выглядит как Код your_variable=1-your_variable Однако надо также учитывать, что кнопка нажата не один шаг, т.е. действие выполняется несколько раз. Я использую: CREATE Код press_lock=0 //Объявляем переменную-"блокер".
STEP Код if press_lock=0 and keyboard_check(mb_left) //"Если переменная-"блокер" выключена (можно использовать "true" и "false"), т.е. равна нулю, а также нажата левая кнопка мыши, то..." { your_variable=1-your_variable //Нужное нам действие (выполнится ОДИН раз!) press_lock=1 //"Включаем" переменную-"блокер" }
if keyboard_check_released(mb_left) and press_lock=1 //Когда левая кнопка мыши "отжата", а переменная-"блокер" включена,.. press_lock=0 //вырубаем "блокер"
Может код и не удобный, но для понимания простой.
|
|
| |
Overdrave | Дата: Воскресенье, 09 Июня 2013, 22:29 | Сообщение # 43 | Тема: Лазеры и зеркала |
частый гость
Сейчас нет на сайте
| Код события STEP объекта игрока: Код if instance_number(laser_turet)>0 { if laser_turet.attack=1 { if collision_line(laser_turet.x,laser_turet.y,laser_turet.xx,laser_turet.yy,id,0,0) instance_destroy() } }
Думаю, где-то здесь собака то и зарыта.
А скриншот прилагается под спойлером.
|
|
| |
Overdrave | Дата: Воскресенье, 09 Июня 2013, 21:22 | Сообщение # 44 | Тема: Лазеры и зеркала |
частый гость
Сейчас нет на сайте
| В игре на вооружении три системы лазеров: 1)Объекты-лазеры Каждый лазер - объект 32х4. Есть стационарная лазерная туррель. Работает идеально, проста в реализации и установке, да и выглядит реалистично, вот только двигаться не может вообще. 2)"Лазеромёт" Та же стационарная туррель, но в этот раз стреляет небольшими объектами, которые в целом выглядят как лазер. Из преимуществ, нужных мне - это отражение от зеркала. Однако тут тоже есть недостатки и весомые: после движения зеркала игроком сверху лазер "делится" - очевидно, слишком маленькая скорость комнаты. Также недавно увеличил скорость самого игрока, и проблема медлительности лазера стала более ощутимой - лазер не успевал "отлетать", поэтому убивал игрока. 3)Рисование лазера. Есть туррель (внезапно), которая крепится в воздухе и направлена вниз. По форме круглая, "качается" примерно на 80 градусов вниз. Время от времени отключается. Работает так: находится координата столкновения со стеной. До неё рисуется линия. В событии игрока пишется код в стиле "Если пересеч линию х,хх,у,уу (т.е. линию, совпадающую с линией лазера), то игрок самоликвидируется". Всё работает прекрасно, пока в игру не вступает второй такой же лазер: работает лишь событие столкновение с линией первого такого лазера, т.е. Игрок умирает лишь от первого лазера.
На скриншоте все три вида систем.
Ну и, собственно, моя просьба: совместить все три системы в одну, т.е. максимально сохранить преимущества каждой и устранить их недостатки или, как вариант, написать другую.
|
|
| |
Overdrave | Дата: Четверг, 06 Июня 2013, 21:27 | Сообщение # 45 | Тема: Самонаводящаяся ракета |
частый гость
Сейчас нет на сайте
| YellowAfterlife, спасибо, только мне надо было, чтобы ракета выстреливалась туррелью и летела в игрока...
|
|
| |
Overdrave | Дата: Понедельник, 03 Июня 2013, 10:57 | Сообщение # 46 | Тема: Самонаводящаяся ракета |
частый гость
Сейчас нет на сайте
| XDominator Премного благодарен. Всё заработало сразу после того, как я поменял знаки |D
|
|
| |
Overdrave | Дата: Воскресенье, 02 Июня 2013, 15:04 | Сообщение # 47 | Тема: Самонаводящаяся ракета |
частый гость
Сейчас нет на сайте
| Давно пытаюсь сделать самонаводящуюся ракету. Не ту, что тупо летит напролом, с шансом попасть в цель в 100%, а ту, от которой вполне возможно увернутся. Я пытался реализовать это двумя способами: 1)Сделал небольшой объект-цель для ракеты, который с небольшим отставанием двигался за игроком (скорость этого объекта зависела от степени отставания). Ракета всё делала правильно, до тех пор, пока не достигала объекта: она попросту залагивала в нём (очевидно, не прописаны её последующие действия). тогда я рассмотрел 3 фазы разворота: *Снизить скорость *Снизить скорость до нуля и наполовину повернуться (всё плавно, офк) *Повышать скорость до обычной, завершив поворот. При всех этих стадиях проверять, совпадает ли direction ракеты с point_direction до координат игрока, если да, то просто ускоряться до нормальной скорости, ведя обыкновенное преследование. Эта система пока только в теории, не знаю, сработает ли она, ведь цель после прыжка наверняка будет оказываться над игроком...
2)Втором способ заключается в том, чтобы сравнивать координаты потенциального столкновения с координатами игрока: *на картинке увидел ошибку в виде у>yy, имелось в виду напротив, y<yy
Эту систему я реализовал таким образом: Код if Player.x>xx direction+=1
if Player.x<xx direction-=1
довольно просто, да и работает всё прекрасно, пока в дело не входит разница переменных у и уу. Может получиться так, что у<yy, а x>xx (персонаж слева сверху от ракеты), тогда ракета попросту летит вниз.
Если коротко, то два вопроса: 1)Какую из этих систем лучше всего использовать? 2)Как усовершенствовать вторую систему?
|
|
| |
|