Для этого необходимо, чтобы у вас были установлены Git и Node.js.
Чтобы установить как зависимость для вашего собственного приложения:
npm install scratch-vm
Чтобы самостоятельно настроить среду разработки для редактирования Scratch-VM:
git clone https://github.com/scratchfoundation/scratch-vm.git
cd scratch-vm
npm install
Для этого необходимо установить Node.js.
Для удобства мы включили в состав виртуальной машины сервер разработки. Иногда это полезно при работе в среде, загружающей удаленные ресурсы (например, SVG-файлы с Scratch-сервера). Если вы хотите использовать модифицированную виртуальную машину с полным графическим интерфейсом Scratch 3.0, следуйте инструкциям, чтобы связать виртуальную машину с графическим интерфейсом.
Откройте командную строку или терминал в репозитории и запустите:
npm start
Чтобы просмотреть игровую площадку, убедитесь, что сервер разработки запущен, и перейдите по адресу http://localhost:8073/playground/ — вы будете перенаправлены на игровую площадку, где демонстрируются различные инструменты и внутреннее состояние.
npm run build
< script src =" /path/to/dist/web/scratch-vm.js " > </ script >
< script >
var vm = new window . VirtualMachine ( ) ;
// do things
</ script >
Пример расширенной установки можно найти в каталоге /src/playground, который включает полностью работающий экземпляр виртуальной машины.
var VirtualMachine = require ( 'scratch-vm' ) ;
var vm = new VirtualMachine ( ) ;
// Block events
Scratch . workspace . addChangeListener ( vm . blockListener ) ;
// Run threads
vm . start ( ) ;
Виртуальная машина создает и поддерживает состояние абстрактного синтаксического дерева (AST), прослушивая события, создаваемые рабочей областью временных блоков через blockListener
. Каждая цель (объект, выполняющий код, например, спрайт) хранит AST для своих блоков. В любой момент текущее состояние AST можно просмотреть, проверив объект vm.runtime.targets[...].blocks
.
Блочное представление виртуальной машины содержит всю важную информацию для выполнения и хранения. Вот пример, представляющий сценарий «при нажатии клавиши» в рабочей области:
{
"_blocks" : {
"Q]PK~yJ@BTV8Y~FfISeo" : {
"id" : " Q]PK~yJ@BTV8Y~FfISeo " ,
"opcode" : " event_whenkeypressed " ,
"inputs" : {
},
"fields" : {
"KEY_OPTION" : {
"name" : " KEY_OPTION " ,
"value" : " space "
}
},
"next" : null ,
"topLevel" : true ,
"parent" : null ,
"shadow" : false ,
"x" : -69.333333333333 ,
"y" : 174
}
},
"_scripts" : [
" Q]PK~yJ@BTV8Y~FfISeo "
]
}
npm test
npm run coverage
npm run deploy
Это переместит построенную в данный момент игровую площадку в ветку gh-pages отслеживаемого в данный момент удаленного устройства. Если вы хотите изменить место отправки, добавьте аргумент URL-адреса репозитория:
npm run deploy -- -r < your repo url >
Мы предоставляем Scratch бесплатно и хотим, чтобы так и оставалось! Пожалуйста, рассмотрите возможность сделать пожертвование для поддержки наших дальнейших усилий по проектированию, дизайну, развитию сообщества и ресурсов. Пожертвования любого размера приветствуются. Спасибо!