これには、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 がインストールされている必要があります。
便宜上、VM には開発サーバーが含まれています。これは、リモート リソース (スクラッチ サーバーからの SVG など) を読み込む環境で実行する場合に便利な場合があります。変更した VM を完全な Scratch 3.0 GUI で使用する場合は、手順に従って VM を GUI にリンクします。
リポジトリでコマンド プロンプトまたはターミナルを開き、次を実行します。
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 >
拡張セットアップの例については、完全に実行されている VM インスタンスが含まれている /src/playground ディレクトリを確認してください。
var VirtualMachine = require ( 'scratch-vm' ) ;
var vm = new VirtualMachine ( ) ;
// Block events
Scratch . workspace . addChangeListener ( vm . blockListener ) ;
// Run threads
vm . start ( ) ;
仮想マシンは、 blockListener
を介してスクラッチ ブロック ワークスペースによって発行されたイベントをリッスンすることにより、抽象構文ツリー (AST) の状態を構築および維持します。各ターゲット (スプライトなどのコード実行オブジェクト) は、そのブロックの AST を保持します。 AST の現在の状態は、 vm.runtime.targets[...].blocks
オブジェクトを検査することでいつでも確認できます。
VM のブロック表現には、実行と保存に関する重要な情報がすべて含まれています。以下は、ワークスペース上の「キーが押されたとき」スクリプトを表す例です。
{
"_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 を無料で提供しており、それを維持したいと考えています。当社の継続的なエンジニアリング、設計、コミュニティ、リソース開発の取り組みをサポートするために、寄付をご検討ください。規模を問わず寄付をお待ちしております。ありがとう!