Как сделать диалог двух персонажей в Scratch?
Хочу, чтобы два моих героя разговаривали по очереди, как в мультике. Как сделать диалог между спрайтами в скретче, чтобы они не перебивали друг друга?
2 ответа
Чтобы герои говорили по очереди и не перебивали друг друга, их надо «подружить» сообщениями. 💬 Используем блоки «передать сообщение» и «когда получу сообщение» из полки «События».
Сообщение — это как невидимая записка: один герой её бросает, другой ловит и начинает говорить.
Спрайт 1 (Кот) начинает диалог:
когда нажат зелёный флажок
сказать «Привет, как дела?» 2 секунд
передать «ход собаки»
Спрайт 2 (Собака) ждёт записку и отвечает:
когда получу «ход собаки»
сказать «Отлично! А у тебя?» 2 секунд
передать «ход кота»
И снова Кот ловит ответ:
когда получу «ход кота»
сказать «Тоже супер!» 2 секунд
Как это устроено: кот говорит → бросает записку «ход собаки» → собака ловит и говорит → бросает «ход кота» → кот ловит и отвечает. Получается аккуратная беседа без перебиваний! 🐱🐶
Как создать сообщение: в блоке «передать» открой список и выбери «Новое сообщение», придумай имя (например, «ход собаки»).
Частая ошибка: дать обоим героям просто «сказать» по зелёному флажку. Тогда они заговорят одновременно, и облачка наложатся. Секрет именно в передаче сообщений по очереди. ✅
Способ попроще, если героев двигаешь не ты: можно расставить паузы блоками «ждать». Пока один говорит 2 секунды, другой ждёт 2 секунды, потом наоборот.
Но это хрупко — чуть сдвинул время, и они снова перебивают друг друга. Сообщения («передать»/«когда получу») надёжнее, потому что следующий герой стартует ровно тогда, когда предыдущий закончил. 🙂