Dazu müssen Sie Git und Node.js installiert haben.
So installieren Sie es als Abhängigkeit für Ihre eigene Anwendung:
npm install scratch-vm
So richten Sie eine Entwicklungsumgebung ein, um Scratch-VM selbst zu bearbeiten:
git clone https://github.com/scratchfoundation/scratch-vm.git
cd scratch-vm
npm install
Dazu muss Node.js installiert sein.
Der Einfachheit halber haben wir der VM einen Entwicklungsserver beigefügt. Dies ist manchmal nützlich, wenn es in einer Umgebung ausgeführt wird, die Remote-Ressourcen lädt (z. B. SVGs vom Scratch-Server). Wenn Sie Ihre geänderte VM mit der vollständigen Scratch 3.0-GUI verwenden möchten, befolgen Sie die Anweisungen, um die VM mit der GUI zu verknüpfen.
Öffnen Sie eine Eingabeaufforderung oder ein Terminal im Repository und führen Sie Folgendes aus:
npm start
Um den Playground anzuzeigen, stellen Sie sicher, dass der Entwicklungsserver läuft, und gehen Sie zu http://localhost:8073/playground/ – Sie werden zum Playground weitergeleitet, der verschiedene Tools und den internen Status demonstriert.
npm run build
< script src =" /path/to/dist/web/scratch-vm.js " > </ script >
< script >
var vm = new window . VirtualMachine ( ) ;
// do things
</ script >
Ein erweitertes Setup-Beispiel finden Sie im Verzeichnis /src/playground, das eine vollständig laufende VM-Instanz enthält.
var VirtualMachine = require ( 'scratch-vm' ) ;
var vm = new VirtualMachine ( ) ;
// Block events
Scratch . workspace . addChangeListener ( vm . blockListener ) ;
// Run threads
vm . start ( ) ;
Die virtuelle Maschine erstellt und verwaltet den Status eines Abstract Syntax Tree (AST), indem sie über den blockListener
auf Ereignisse lauscht, die vom Scratch-Blocks-Arbeitsbereich ausgegeben werden. Jedes Ziel (Code-ausführendes Objekt, zum Beispiel ein Sprite) behält einen AST für seine Blöcke. Der aktuelle Status eines AST kann jederzeit durch Untersuchen des vm.runtime.targets[...].blocks
-Objekts angezeigt werden.
Die Blockdarstellung der VM enthält alle wichtigen Informationen zur Ausführung und Speicherung. Hier ist ein Beispiel für das Skript „Beim Drücken einer Taste“ in einem Arbeitsbereich:
{
"_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
Dadurch wird der aktuell erstellte Spielplatz in den gh-pages-Zweig der aktuell verfolgten Fernbedienung verschoben. Wenn Sie ändern möchten, wohin gepusht werden soll, fügen Sie ein Repo-URL-Argument hinzu:
npm run deploy -- -r < your repo url >
Wir stellen Scratch kostenlos zur Verfügung und möchten, dass dies auch so bleibt! Bitte erwägen Sie eine Spende, um unsere kontinuierlichen Bemühungen in den Bereichen Technik, Design, Community und Ressourcenentwicklung zu unterstützen. Spenden jeder Größe sind willkommen. Danke schön!