Войти на сайт

Авторизация, ждите ...
×
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

ТЕМА: Roguelike система комнат

Roguelike система комнат 4 года 11 мес. назад #114319

  • ALEKSEYR554
  • ALEKSEYR554 аватар
  • Вне сайта
  • Познающий
  • Сообщений: 13
  • Спасибо получено: 2
RPG Maker MV
Здравствуйте, можно ли как-нибудь сделать Roguelike систему комнат? Я хочу попробовать сделать что-то наподобие The binding of Isaac. Надо чтобы при прохождении в проход,дверь персонажа отправляло в случайную комнату из созданных локаций и при походе назад отправляло в туже самую комнату.
Администратор запретил публиковать записи гостям.

Roguelike система комнат 4 года 11 мес. назад #114320

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 913
  • Спасибо получено: 566
  • ОраторПрограммист JavaScript ВетеранДаритель СтимкеяПрограммист Ruby
Не знаю, получится ли только инвентами, но через скрипты можно.
Нужно при переходе направо, например, подбирать случайную карту с дверью налево. А потом в ивенте двери налево, сохранять номер Карты с которой пришли.

Я по тому же принципу как-то делал паззл, подбирая для кусочка с выемкой подходящий кусочек с вырезом:)
Последнее редактирование: 4 года 11 мес. назад от Lekste.
Администратор запретил публиковать записи гостям.

Roguelike система комнат 4 года 11 мес. назад #114321

  • Джекил
  • Джекил аватар
  • Вне сайта
  • Светлый дракон
  • Don't panic!
  • Сообщений: 655
  • Спасибо получено: 374
  • ПисательТестер
Нужна команда-генератор случайных чисел. Комнаты создаются заранее в мэйкере, как локации, и каждой определяется число в названии. При переходе нужно поставить выполнение скрипта с генератором, и, возможно, переходы на нужную локацию. Более точно затрудняюсь определить, сам пока изучаю скрипты на RGSS3. Но на джаве, наверняка тоже есть такая возможность
Не мертво то, что в вечности пребудет. со смертью времени и смерть умрет.
Последнее редактирование: 4 года 11 мес. назад от Джекил.
Администратор запретил публиковать записи гостям.

Roguelike система комнат 4 года 11 мес. назад #114322

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 913
  • Спасибо получено: 566
  • ОраторПрограммист JavaScript ВетеранДаритель СтимкеяПрограммист Ruby
Это если у всех комнат по четыре выхода. Если нет, то нужно отсеивать комнаты, в которых нет выхода во встречном направлении.
Администратор запретил публиковать записи гостям.

Roguelike система комнат 4 года 11 мес. назад #114323

  • Джекил
  • Джекил аватар
  • Вне сайта
  • Светлый дракон
  • Don't panic!
  • Сообщений: 655
  • Спасибо получено: 374
  • ПисательТестер
Подозреваю, что тогда нужно вставить в скрипт или в событие ветвление условий, которое будет отслеживать взаимодействие с событиями переходов
Не мертво то, что в вечности пребудет. со смертью времени и смерть умрет.
Администратор запретил публиковать записи гостям.

Roguelike система комнат 4 года 11 мес. назад #114324

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 913
  • Спасибо получено: 566
  • ОраторПрограммист JavaScript ВетеранДаритель СтимкеяПрограммист Ruby
Там надо что-то такое (Внимание! Псевдокод):
 
// Где-то в плагине
 
function mapsForDoor(doorType) {
    const maps = $game_maps.filter((map) => map.doors[doorType].isAvailable)
    const mapIndex = Math.random(maps.length)
 
    return maps[mapIndex]
}
 
function moveToRandomRoom(sourceMap, doorType) {
    const exitDoor = $doorPairs[doorType]
    const nextMap = mapsForDoor(exitDoor)
 
    sourceMap.door[doorType].map = nextMap
    nextMap.doors[exitDoor].map = sourceMap
 
    return nextMap
}
 
func enterDoor(doorType) {
    var nextMap = $game_map[doorType]
    if nextMap == null {
        nextMap = moveToRandomRoom($game_map, doorType)
    }
 
    // Перенести игрока на `nextMap`
}
 
 
// В ивенте перехода: Выполнить скрипт 
enterDoor("right")
Последнее редактирование: 4 года 11 мес. назад от Lekste.
Администратор запретил публиковать записи гостям.

Roguelike система комнат 4 года 11 мес. назад #114332

  • Leprikon01
  • Leprikon01 аватар
  • Вне сайта
  • Мастер
  • Сообщений: 228
  • Спасибо получено: 145
2019-11-24213832.png

По моему все проще.
Последнее редактирование: 4 года 11 мес. назад от Leprikon01.
Администратор запретил публиковать записи гостям.
Время создания страницы: 0.228 секунд