Isso requer que você tenha Git e Node.js instalados.
Para instalar como uma dependência do seu próprio aplicativo:
npm install scratch-vm
Para configurar um ambiente de desenvolvimento para editar o scratch-vm você mesmo:
git clone https://github.com/scratchfoundation/scratch-vm.git
cd scratch-vm
npm install
Isso requer que o Node.js esteja instalado.
Por conveniência, incluímos um servidor de desenvolvimento com a VM. Às vezes, isso é útil ao executar em um ambiente que carrega recursos remotos (por exemplo, SVGs do servidor Scratch). Se você quiser usar sua VM modificada com a GUI completa do Scratch 3.0, siga as instruções para vincular a VM à GUI.
Abra um prompt de comando ou terminal no repositório e execute:
npm start
Para visualizar o Playground, certifique-se de que o servidor de desenvolvimento esteja em execução e acesse http://localhost:8073/playground/ - você será direcionado ao playground, que demonstra diversas ferramentas e 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 obter um exemplo de configuração estendida, verifique o diretório /src/playground, que inclui uma instância de VM totalmente em execução.
var VirtualMachine = require ( 'scratch-vm' ) ;
var vm = new VirtualMachine ( ) ;
// Block events
Scratch . workspace . addChangeListener ( vm . blockListener ) ;
// Run threads
vm . start ( ) ;
A Máquina Virtual constrói e mantém o estado de uma Árvore de Sintaxe Abstrata (AST) ouvindo eventos emitidos pelo espaço de trabalho de blocos de rascunho por meio do blockListener
. Cada alvo (objeto de execução de código, por exemplo, um sprite) mantém um AST para seus blocos. A qualquer momento, o estado atual de um AST pode ser visualizado inspecionando o objeto vm.runtime.targets[...].blocks
.
A representação em bloco da VM contém todas as informações importantes para execução e armazenamento. Aqui está um exemplo que representa o script "quando a tecla é pressionada" em um espaço de trabalho:
{
"_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
Isso enviará o playground atualmente construído para a ramificação gh-pages do controle remoto atualmente rastreado. Se você quiser alterar para onde enviar push, adicione um argumento repo url:
npm run deploy -- -r < your repo url >
Fornecemos o Scratch gratuitamente e queremos mantê-lo assim! Considere fazer uma doação para apoiar nossos esforços contínuos de engenharia, design, comunidade e desenvolvimento de recursos. Doações de qualquer tamanho são apreciadas. Obrigado!