Ini mengharuskan Anda menginstal Git dan Node.js.
Untuk menginstal sebagai ketergantungan pada aplikasi Anda sendiri:
npm install scratch-vm
Untuk menyiapkan lingkungan pengembangan untuk mengedit scratch-vm sendiri:
git clone https://github.com/scratchfoundation/scratch-vm.git
cd scratch-vm
npm install
Ini memerlukan instalasi Node.js.
Demi kenyamanan, kami telah menyertakan server pengembangan dengan VM. Hal ini terkadang berguna ketika berjalan di lingkungan yang memuat sumber daya jarak jauh (misalnya, SVG dari server Scratch). Jika Anda ingin menggunakan VM yang dimodifikasi dengan GUI Scratch 3.0 lengkap, ikuti petunjuk untuk menautkan VM ke GUI.
Buka Command Prompt atau Terminal di repositori dan jalankan:
npm start
Untuk melihat Playground, pastikan server dev berjalan dan buka http://localhost:8073/playground/ - Anda akan diarahkan ke taman bermain, yang menunjukkan berbagai alat dan keadaan internal.
npm run build
< script src =" /path/to/dist/web/scratch-vm.js " > </ script >
< script >
var vm = new window . VirtualMachine ( ) ;
// do things
</ script >
Untuk contoh penyiapan yang diperluas, lihat direktori /src/playground, yang mencakup instance VM yang berjalan sepenuhnya.
var VirtualMachine = require ( 'scratch-vm' ) ;
var vm = new VirtualMachine ( ) ;
// Block events
Scratch . workspace . addChangeListener ( vm . blockListener ) ;
// Run threads
vm . start ( ) ;
Mesin Virtual membangun dan memelihara keadaan Pohon Sintaks Abstrak (AST) dengan mendengarkan peristiwa yang dipancarkan oleh ruang kerja blok awal melalui blockListener
. Setiap target (objek yang menjalankan kode, misalnya sprite) menyimpan AST untuk bloknya. Kapan saja, status AST saat ini dapat dilihat dengan memeriksa objek vm.runtime.targets[...].blocks
.
Representasi blok VM berisi semua informasi penting untuk eksekusi dan penyimpanan. Berikut ini contoh yang mewakili skrip "saat tombol ditekan" di ruang kerja:
{
"_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
Ini akan mendorong taman bermain yang sedang dibangun ke cabang gh-pages dari jarak jauh yang saat ini dilacak. Jika Anda ingin mengubah tujuan push, tambahkan argumen url repo:
npm run deploy -- -r < your repo url >
Kami menyediakan Scratch secara gratis, dan ingin tetap seperti itu! Harap pertimbangkan untuk memberikan donasi untuk mendukung upaya berkelanjutan kami dalam bidang teknik, desain, komunitas, dan pengembangan sumber daya. Sumbangan dalam jumlah berapa pun dihargai. Terima kasih!