Top.Mail.Ru
Ответы

Помогите с редактором в гд (geometry dash)

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

По дате
По рейтингу
Аватар пользователя
mexahuk6Тролль
4мес

Как это реализовать (простая логика)

Вам понадобятся: Touch Trigger, Spawn Trigger, Collision Block (как «переключатель»), Random Trigger и несколько счетчиков (Counters). Всё это есть в редакторе, вы ничего не устанавливаете.

⚙️ Пошаговый алгоритм

Шаг 1: Создаём «Лампочку памяти» (Spawn + Touch)

Вам нужно устройство, которое «запомнит», что игрок нажал на орб в этой комнате, и передаст эту информацию дальше.

  1. Ставите Touch Trigger на ваш квадратный орб. При нажатии он активирует специальный Spawn Trigger.

  2. Этот Spawn Trigger активирует во всей комнате объект с ID, например, flag_pressed. Это просто статичный объект, который мы используем как маркер. Важно: Spawn Trigger должен быть настроен на Multi Activate (Режим по умолчанию) или режим Hold, чтобы точно сработал.

Шаг 2: Логика для следующей комнаты (Random + Collision)

Теперь, когда игрок перешёл в следующую комнату, нужно применить, запомненное состояние.

  1. Помещаете на вход в новую комнату (в дверной проём) Collision Block с широким основанием. При столкновении игрока он активирует Random Trigger.

  2. Random Trigger должен быть настроен на Chance: 50% (или любой нужный вам процент). Ему нужно две цели:

    • Если выпал шанс: Активировать спавн монстра.

    • Если шанс НЕ выпал: Ничего не делать, или показать пустоту.

Шаг 3: Связываем нажатие с шансом (Главный секрет)

Это самый важный момент. Random Trigger по умолчанию всегда срабатывает и даёт шанс. Но вы хотите, чтобы шанс был активен только если в предыдущей комнате нажали орб. Как это сделать?

  • Решение: Настройте Random Trigger так, чтобы он активировал не спавн монстра напрямую, а активировал Collision Block, который освобождает монстра.

  • Но! Collision Block мы уже использовали для активации Random. Это немного мешает.

Правильный, бесконфликтный способ:

  1. В новой комнате создайте два Collision Block:

    • Первый — тот, что активирует Random Trigger. Он сработает всегда.

    • Второй — блокируем проход для монстра. Этот блок активируем только от Random Trigger и от объекта flag_pressed.

  2. Соединяем: Random Trigger (в режиме Chance) при успешном выпадении активирует Spawn Trigger. Этот Spawn Trigger активирует второй Collision Block.

  3. Логика: Монстр заперт вторым Collision Block. Он освобождается только если активируется секундный Spawn, который включается только при удачном шансе Random Trigger.

Упрощенная версия (без конфликтов):

  • В дверях стоит Single Trigger, который запускает Move Trigger, который смещает объект-монстра с его стартовой точки. У Move Trigger в настройках точно задано время активации 0.0 и продолжительность 0.0.

  • Активация триггера движения произойдет сразу, но не раньше, чем игрок пройдёт в дверь.

  • Используйте Random Trigger, чтобы решить, активировать этот Move Trigger или нет.

  • Связка: Collision (вход)RandomMove (если шанс выпал).

Связка с нажатым орбом:

  • Добавьте в цепочку Spawn Trigger, который блокирует срабатывание Random, если орб НЕ был нажат. Для этого используйте Toggle Trigger со значением Disable на Random Trigger.

🛠️ Что делать, если не получается с ходу

Отладка (Debugging) — неотъемлемая часть создания сложных уровней.

  1. Проверьте режим активации у всех триггеров (Spawn, Touch, Random). Они должны быть на Multi Activate или Hold.

  2. Убедитесь в правильности ID. Это самая частая ошибка. Дважды проверьте, что у объекта flag_pressed ID = 1, а у триггера в новых комнатах Group ID = 1.

  3. Изолируйте проблему. Создайте тестовую комнату для проверки логики «нажал орб → появился монстр в следующей», прежде чем внедрять её в основной уровень. Это сэкономит часы времени.



Видео по теме