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

Как сделать зацикленный выбор в MV

Больше
8 года 5 мес. назад #100790 от Leprikon01
Здравствуйте. Мне нужно сделать несколько вариантов ответа и чтобы после диалога опять показывался этот же выбор.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Разработчик Коммерсант Проект месяца 1 место Проект месяца 2 место 3 место в Кодировке Ветеран Учитель Организатор конкурсов Даритель Стимкея Проект месяца 3 место 2 место Готв Победитель Сбитой кодировки 2 место Победитель конкурса 3 место
Больше
8 года 5 мес. назад #100791 от AnnTenna
Привет! Так легко же вроде - просто используй цикл :whistle:

Спасибо сказали: Dmy, ZX_Lost_Soul, Leprikon01

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Даритель Стимкея Учитель Организатор конкурсов 2 место Программист JavaScript Оратор
Больше
8 года 5 мес. назад #100793 от Mur
Я всё-таки посоветую, лучше сделать через метку (label):


Спасибо сказали: Leprikon01

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
8 года 5 мес. назад #100794 от Leprikon01
Спасибо! Мне подошел первый вариант.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 2 место Проект месяца 1 место Ветеран Разработчик Проект года 3 место Проект месяца 3 место Победитель конкурса Учитель Даритель Стимкея Победитель Сбитой кодировки За 3 место на конкурсе маппинга Оратор
Больше
8 года 5 мес. назад #100796 от ZX_Lost_Soul
Mur, а чем лучше? Действий больше, да и использование переходов по метке даже в событиях мейкера визуально нарушает их структуру. Плюс я думаю, что освоение событий в мейкере помогает человеку понять основы программирования, а goto в любом языке является дурным тоном :)
Спасибо сказали: Dmy, yuryol

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Даритель Стимкея Учитель Организатор конкурсов 2 место Программист JavaScript Оратор
Больше
8 года 5 мес. назад - 8 года 5 мес. назад #100798 от Mur

ZX_Lost_Soul пишет: Mur, а чем лучше?


Как в анекдоте:
— Эти лучше, чем другие!
— Леонид Ильич, чем лучше?
— Чем другие!

:laugh:

Ты как-то не так прочитал. Я не говорю, что этот способ лучше, я советую сделать по другому.

ZX_Lost_Soul пишет: Действий больше, да и использование переходов по метке даже в событиях мейкера визуально нарушает их структуру.


Это каких же действий больше, нажать 1 раз кнопку или два раза?

Вариант с Loop:


Вариант с метками:


В моём случае, как раз-таки визуально понятнее, что происходит «зацикливание» с места «Jump to Label» к метке «Loop».

ZX_Lost_Soul пишет: Плюс я думаю, что освоение событий в мейкере помогает человеку понять основы программирования, а goto в любом языке является дурным тоном :)


Ну это ты расскажи ruby-программистам :) которые любят так прыгать по коду и выскакивать из середины функции по return.

А вообще если по сути разобраться, любой цикл и есть go to с условием, чего не скажешь о команде «цикл» в ивентах. Так что технически они ничем не отличаются.

В моём же примере просто ещё сделан выход из «вечного цикла», то есть по сути задано условие.
Последнее редактирование: 8 года 5 мес. назад пользователем Mur.
Спасибо сказали: Dmy, ZX_Lost_Soul

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 2 место Проект месяца 1 место Ветеран Разработчик Проект года 3 место Проект месяца 3 место Победитель конкурса Учитель Даритель Стимкея Победитель Сбитой кодировки За 3 место на конкурсе маппинга Оратор
Больше
8 года 5 мес. назад #100799 от ZX_Lost_Soul
Mur, для выхода из цикла тоже два действия нужно (метка и переход к ней), а не одно (Завершить цикл).

Ну, в маленьком примере может и понятнее, а вот в реальной игре там будут ещё действия на каждый вариант + действия до и после цикла, и метка может затеряться. А в случае с циклом мейкер сместит все действия внутри цикла вправо и будут чётко видны его границы.

А так, конечно, всё на вкус и цвет :)
Спасибо сказали: Dmy, Mur

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Ветеран Даритель Стимкея Оратор Программист JavaScript
Больше
8 года 5 мес. назад #100800 от Lekste
+ GoTo плох соблазном прыгнуть совсем далеко и не всегда в одно место, отчего последовательность действий превращается в паутину. А при использовании 'break' и ему подобных, всегда знаешь, куда выходишь.
Спасибо сказали: Dmy, ZX_Lost_Soul

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
8 года 5 мес. назад - 8 года 5 мес. назад #100843 от Leprikon01
Второй вариант хорош если надо не все строки выбора зациклить, а одну или если надо сделать выбор в в выборе эдакую матрешку :laugh: с возможностью вернуться на первый пункт. А первый вариант хорош для простого выбора.
Последнее редактирование: 8 года 5 мес. назад пользователем Leprikon01.
Спасибо сказали: ZX_Lost_Soul

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 2 место Ветеран Оратор
Больше
8 года 5 мес. назад - 8 года 5 мес. назад #100847 от Green-Leo
[strike]А что мешает "повтор цикла" засунуть именно в выбор? [/strike]
И вообще, если весь выбор повторять, то событие получится зацикленным, не?

[strike]Не совсем понял, что хотел сказать Леприкон и почему в одном случае один из вариантов не должен работать
[/strike]
АБДЕЙТ: я понял, что мешает, забыл что функция "повтор цикла" добавляется автоматом, когда ставишь цикл и её нельзя переставить... Ну в таком случае, при желании можно добавить "прервать цикл" в те выборы, после которых этот кусок повторяться не должен)
Последнее редактирование: 8 года 5 мес. назад пользователем Green-Leo.
Спасибо сказали: Dmy

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
8 года 5 мес. назад - 8 года 5 мес. назад #100848 от Leprikon01
Вот смотри, чел сиди за компом в инете
ВНИМАНИЕ: Спойлер!

у него 5 вариантов выбора и только 1 продолжает игру. В этой ситуации проще сделать цикл и в последнем выборе выход из него.
Последнее редактирование: 8 года 5 мес. назад пользователем Leprikon01.
Спасибо сказали: Dmy, Green-Leo

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Даритель Стимкея Учитель Организатор конкурсов 2 место Программист JavaScript Оратор
Больше
8 года 5 мес. назад #100849 от Mur

Leprikon01 пишет: у него 5 вариантов выбора и только 1 продолжает игру.


А теперь включаем [strike]лазер[/strike] логику :cheer:

Ну предположим «посмотреть новости», «почитать журнал» ещё худо бедно можно бесконечно делать, хотя по сути это тоже конечные действия, гг можно просто замутить от пересыщения информацией.

А вот пункты с заказами, извините, но они должны быть либо одноразовые (исчезать после выбора), либо дать возможность указать количество заказов.

ну как-то так… :blush:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
8 года 5 мес. назад #100851 от Leprikon01
Да конечно вы правы. Я только учусь. И еще не додумался как сделать чтобы заказы исчезали из выбора. И нужно чтобы оба заказа были сделаны.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Даритель Стимкея Учитель Организатор конкурсов 2 место Программист JavaScript Оратор
Больше
8 года 5 мес. назад #100853 от Mur

Leprikon01 пишет: И еще не додумался как сделать чтобы заказы исчезали из выбора. И нужно чтобы оба заказа были сделаны.


Ну как вариант, можно завести какую-нибудь переменную, или переключатель и внутри пункта уже спрашивать состояние. Если она не установлена (заказ не делали), показать диалог, текст или что там должно произойти и в конце установить эту переменную или переключатель. Если же переключатель уже установлен, показать например фразу, что «я уже заказал бла… бла… бла… второй раз не буду».

Например так, используя 80й переключатель как условие:


Спасибо сказали: Leprikon01

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
8 года 5 мес. назад - 8 года 5 мес. назад #100855 от Leprikon01
А можно пошагово? Для очень трудных... А не, все разобрался! Все получилось, спасибо.
Последнее редактирование: 8 года 5 мес. назад пользователем Leprikon01.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.120 секунд
Работает на Kunena форум