يتطلب هذا تثبيت Git وNode.js.
للتثبيت باعتباره تبعية لتطبيقك الخاص:
npm install scratch-vm
لإعداد بيئة تطوير لتحرير برنامجcratch-vm بنفسك:
git clone https://github.com/scratchfoundation/scratch-vm.git
cd scratch-vm
npm install
يتطلب هذا تثبيت Node.js.
وللتسهيل عليك، قمنا بتضمين خادم تطوير مع VM. يكون هذا مفيدًا في بعض الأحيان عند التشغيل في بيئة تقوم بتحميل موارد بعيدة (على سبيل المثال، ملفات SVG من خادم Scratch). إذا كنت ترغب في استخدام جهاز افتراضي معدّل مع واجهة المستخدم الرسومية الكاملة لـ Scratch 3.0، فاتبع الإرشادات لربط الجهاز الافتراضي بواجهة المستخدم الرسومية.
افتح موجه الأوامر أو الوحدة الطرفية في المستودع وقم بتشغيل:
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 >
للحصول على مثال إعداد موسع، راجع الدليل /src/playground، الذي يتضمن مثيل VM قيد التشغيل بالكامل.
var VirtualMachine = require ( 'scratch-vm' ) ;
var vm = new VirtualMachine ( ) ;
// Block events
Scratch . workspace . addChangeListener ( vm . blockListener ) ;
// Run threads
vm . start ( ) ;
يقوم الجهاز الظاهري ببناء حالة شجرة بناء الجملة المجردة (AST) والحفاظ عليها من خلال الاستماع إلى الأحداث المنبعثة من مساحة عمل الكتل المؤقتة عبر blockListener
. يحتفظ كل هدف (كائن يقوم بتشغيل التعليمات البرمجية، على سبيل المثال، كائن) بـ 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 لجهاز التحكم عن بعد الذي يتم تتبعه حاليًا. إذا كنت ترغب في تغيير المكان الذي تريد الدفع إليه، أضف وسيطة repo url:
npm run deploy -- -r < your repo url >
نحن نقدم برنامج Scratch مجانًا، ونريد الحفاظ عليه بهذه الطريقة! يرجى النظر في التبرع لدعم جهودنا المستمرة في مجال الهندسة والتصميم والمجتمع وتنمية الموارد. هي موضع تقدير التبرعات من أي حجم. شكرًا لك!