Esto requiere que tengas instalado Git y Node.js.
Para instalar como una dependencia para su propia aplicación:
npm install scratch-vm
Para configurar un entorno de desarrollo para editar scratch-vm usted mismo:
git clone https://github.com/scratchfoundation/scratch-vm.git
cd scratch-vm
npm install
Esto requiere que Node.js esté instalado.
Para mayor comodidad, hemos incluido un servidor de desarrollo con la VM. Esto a veces es útil cuando se ejecuta en un entorno que carga recursos remotos (por ejemplo, SVG del servidor Scratch). Si desea utilizar su VM modificada con la GUI completa de Scratch 3.0, siga las instrucciones para vincular la VM a la GUI.
Abra un símbolo del sistema o una terminal en el repositorio y ejecute:
npm start
Para ver Playground, asegúrese de que el servidor de desarrollo esté ejecutándose y vaya a http://localhost:8073/playground/; será dirigido al área de juegos, que muestra varias herramientas y el estado interno.
npm run build
< script src =" /path/to/dist/web/scratch-vm.js " > </ script >
< script >
var vm = new window . VirtualMachine ( ) ;
// do things
</ script >
Para ver un ejemplo de configuración ampliada, consulte el directorio /src/playground, que incluye una instancia de VM en ejecución completa.
var VirtualMachine = require ( 'scratch-vm' ) ;
var vm = new VirtualMachine ( ) ;
// Block events
Scratch . workspace . addChangeListener ( vm . blockListener ) ;
// Run threads
vm . start ( ) ;
La máquina virtual construye y mantiene el estado de un árbol de sintaxis abstracta (AST) escuchando los eventos emitidos por el espacio de trabajo de bloques reutilizables a través de blockListener
. Cada objetivo (objeto que ejecuta código, por ejemplo, un sprite) mantiene un AST para sus bloques. En cualquier momento, se puede ver el estado actual de un AST inspeccionando el objeto vm.runtime.targets[...].blocks
.
La representación del bloque de la VM contiene toda la información importante para la ejecución y el almacenamiento. A continuación se muestra un ejemplo que representa el script "al presionar una tecla" en un espacio de trabajo:
{
"_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
Esto llevará el área de juegos actualmente construida a la rama gh-pages del control remoto actualmente rastreado. Si desea cambiar dónde enviar, agregue un argumento de URL de repositorio:
npm run deploy -- -r < your repo url >
Ofrecemos Scratch de forma gratuita y queremos que siga siendo así. Considere hacer una donación para apoyar nuestros continuos esfuerzos de ingeniería, diseño, comunidad y desarrollo de recursos. Se agradecen donaciones de cualquier tamaño. ¡Gracias!