Почему я не могу остановить музыку в цикле в Scratch?

Я делаю игру, и мне нужна музыка для титульного экрана. Я добавил весь код, и он не перестает играть, он просто перезапускает музыку. Как это исправить?

Я пытался использовать блок повтора до тех пор, но он все еще не работает, он просто ждет, пока музыка не закончится, а затем останавливается.

Код кнопки воспроизведения:

when this sprite clicked
start sound coin
broadcast game
repeat 10
    change ghost effect by 10
end of repeat block
hide

Код фона:

when i receive game
repeat 10
    change ghost effect by 10
end of repeat block
switch backdrop to game
when backdrop switches to game
repeat 10
    change ghost effect by -10
end of repeat block
forever play sound music until done

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


person The Butler    schedule 02.09.2019    source источник


Ответы (2)


В музыкальном разделе есть блок «Остановить все звуки».

Используйте этот блок, чтобы остановить все звуки, но добавьте 0,3-секундную задержку перед остановкой всех звуков, чтобы звук не останавливался в вечном цикле ниже.

Вот картинка (ctrl + клик)

person Mr PizzaGuy    schedule 12.09.2019

Вы можете изменить код на этот:

when backdrop switches to game
repeat 10
    change ghost effect by -10
end of repeat block
forever play sound music until done
stop all sounds
stop this script

остановите все звуки песни, остановите этот скрипт, чтобы остановить цикл

person Account_2    schedule 02.10.2019
comment
Может ли когда-либо выполняться код после forever? Это противоречило бы значению слова «навсегда». - person Roland Illig; 17.10.2019
comment
Нет, не может. Вот почему блок forever имеет нижнюю границу без соединителя. - person Roland Illig; 17.10.2019