(Решено) Есть ли программное обеспечение для управления слоями в Scratch?Если нет, как бы я сделал один? - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь создать базовую RPG в Scratch, и я застрял в управлении тем, какие спрайты находятся на каких слоях и как эффективно переключаться между ними.У меня есть четыре спрайта для отслеживания:

Игрок (ходы), NPC1 (Ходы), NPC2 (Стационарный), Передний план (Стационарный)

В идеале, NPC2 и передний план должны быть натот же слой, в то время как NPC1 и игрок смогут свободно перемещаться позади и друг перед другом, а также другими спрайтами самостоятельно.Слои изменяются только тогда, когда позиция y объекта проходит позицию y другого объекта.Перспектива делает положение х несущественным для управления слоями.Есть 6 возможных перестановок четырех спрайтов, предполагая, что NPC2 и передний план всегда рядом друг с другом (что и должно быть).Царапина позволяет только один спрайт на слой и не поддерживает перемещение спрайтов к указанному слою, только к относительным слоям или к передней или задней части.Однако реализация списков и переменных не столь ограничена.

На самом деле есть три проблемы: как будет сигнализироваться об изменении слоя, как будет рассчитываться количество слоев, измененных для каждого отдельного спрайта, и какизменения слоев всех четырех спрайтов выполняются в правильном порядке (при условии, что один спрайт меняет слои за раз).

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

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

В настоящее время я не полностью внедрил какое-либо решение.

...