mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2024-12-22 14:02:37 -05:00
Virtual Machine used to represent, run, and maintain the state of programs for Scratch 3.0
ab5c79730c
Add basics of threads and sequencing |
||
---|---|---|
src | ||
test | ||
.eslintrc | ||
.gitignore | ||
.travis.yml | ||
LICENSE | ||
Makefile | ||
package.json | ||
README.md | ||
TRADEMARK | ||
vm.js | ||
vm.min.js | ||
webpack.config.js |
scratch-vm
Installation
npm install scratch-vm
Setup
var VirtualMachine = require('scratch-vm');
var vm = new VirtualMachine();
// Block events
// UI events
// Listen for events
Standalone Build
make build
<script src="/path/to/vm.js"></script>
<script>
var vm = new window.VirtualMachine();
// do things
</script>
Abstract Syntax Tree
Overview
Anatomy of a Block
{
"id": "^1r~63Gdl7;Dh?I*OP3_",
"opcode": "wedo_motorclockwise",
"next": null,
"fields": {
"DURATION": {
"name": "DURATION",
"value": null,
"blocks": {
"1?P=eV(OiDY3vMk!24Ip": {
"id": "1?P=eV(OiDY3vMk!24Ip",
"opcode": "math_number",
"next": null,
"fields": {
"NUM": {
"name": "NUM",
"value": "10",
"blocks": null
}
}
}
}
},
"SUBSTACK": {
"name": "SUBSTACK",
"value": "@1ln(HsUO4!]*2*%BrE|",
"blocks": null
}
}
}
Testing
make test
make coverage
make benchmark