مرجع بلوکها
مرجع کامل بلوکهای Scratch 3.0
Section titled “مرجع کامل بلوکهای Scratch 3.0”این راهنما شامل تمام بلوکهای موجود در Scratch 3.0 است که به دستهبندی، کاربرد و مثالهای عملی تقسیم شدهاند.
دستهبندی بلوکها
Section titled “دستهبندی بلوکها”بلوکهای حرکت (Motion) 🔵
Section titled “بلوکهای حرکت (Motion) 🔵”بلوکهای حرکت برای کنترل موقعیت و جهت اسپرایتها استفاده میشوند.
حرکت مطلق
Section titled “حرکت مطلق”برو به x: () y: ()
- کاربرد: انتقال مستقیم به مختصات مشخص
- مثال:
برو به x: 100 y: 50
وقتی پرچم سبز کلیک شدبرو به x: 0 y: 0برو به ()
- کاربرد: رفتن به موقعیت اسپرایت یا نقطه خاص
- گزینهها: موقعیت تصادفی، اسپرایتهای دیگر، موقعیت ماوس
وقتی کلید space فشرده شدبرو به موقعیت تصادفی() قدم حرکت کن
- کاربرد: حرکت در جهت فعلی
- مقدار: تعداد پیکسل (مثبت: جلو، منفی: عقب)
همیشه 10 قدم حرکت کن اگر touching edge 180 درجه بچرخ پایانپایان() درجه راست بچرخ
- کاربرد: چرخش ساعتگرد
وقتی کلید right arrow فشرده شد15 درجه راست بچرخ() درجه چپ بچرخ
- کاربرد: چرخش پادساعتگرد
وقتی کلید left arrow فشرده شد15 درجه چپ بچرخبه سمت () بچرخ
- کاربرد: چرخش به سمت جهت، اسپرایت یا ماوس
همیشه به سمت mouse-pointer بچرخ 5 قدم حرکت کنپایانتغییر موقعیت
Section titled “تغییر موقعیت”x را () تغییر بده
- کاربرد: حرکت افقی نسبی
وقتی کلید right arrow فشرده شدx را 10 تغییر بدهx را () قرار بده
- کاربرد: تنظیم موقعیت افقی مطلق
وقتی پرچم سبز کلیک شدx را 0 قرار بدهگزارشگرهای موقعیت
Section titled “گزارشگرهای موقعیت”x position
- کاربرد: دریافت موقعیت افقی فعلی
- بازگشت: عدد بین -240 تا 240
y position
- کاربرد: دریافت موقعیت عمودی فعلی
- بازگشت: عدد بین -180 تا 180
direction
- کاربرد: دریافت جهت فعلی
- بازگشت: عدد بین -179 تا 180
بلوکهای ظاهر (Looks) 🟣
Section titled “بلوکهای ظاهر (Looks) 🟣”بلوکهای ظاهر برای کنترل نمایش و جلوههای بصری استفاده میشوند.
گفتار و فکر
Section titled “گفتار و فکر”() بگو
- کاربرد: نمایش متن در حباب گفتار
وقتی این اسپرایت کلیک شد"سلام!" بگو() را () ثانیه بگو
- کاربرد: نمایش متن برای مدت زمان مشخص
وقتی پرچم سبز کلیک شد"بازی شروع شد!" را 2 ثانیه بگو() فکر کن
- کاربرد: نمایش متن در حباب فکر
وقتی کلید t فشرده شد"چه کار کنم؟" فکر کنتغییر ظاهر
Section titled “تغییر ظاهر”costume را () تغییر بده
- کاربرد: تغییر لباس اسپرایت
وقتی کلید space فشرده شدcostume را بعدی تغییر بدهcostume را () قرار بده
- کاربرد: انتخاب لباس خاص
وقتی پرچم سبز کلیک شدcostume را costume1 قرار بدهbackdrop را () تغییر بده
- کاربرد: تغییر پسزمینه صحنه
وقتی کلید b فشرده شدbackdrop را بعدی تغییر بدهاندازه و موقعیت لایه
Section titled “اندازه و موقعیت لایه”اندازه را () تغییر بده
- کاربرد: تغییر اندازه نسبی (درصد)
وقتی کلید up arrow فشرده شداندازه را 10 تغییر بدهاندازه را () قرار بده
- کاربرد: تنظیم اندازه مطلق
وقتی پرچم سبز کلیک شداندازه را 100 قرار بدهبه جلوترین لایه برو
- کاربرد: قرار دادن اسپرایت در جلوترین لایه
وقتی این اسپرایت کلیک شدبه جلوترین لایه برو() لایه جلو برو
- کاربرد: حرکت به جلو در لایهها
وقتی کلید f فشرده شد1 لایه جلو بروجلوههای بصری
Section titled “جلوههای بصری”افکت () را () تغییر بده
- کاربرد: اعمال جلوههای بصری
- افکتها: color، fisheye، whirl، pixelate، mosaic، brightness، ghost
وقتی کلید c فشرده شدافکت color را 25 تغییر بدهافکت () را () قرار بده
- کاربرد: تنظیم مقدار مطلق افکت
وقتی پرچم سبز کلیک شدافکت ghost را 50 قرار بدهافکتها را پاک کن
- کاربرد: حذف تمام افکتهای اعمال شده
وقتی کلید r فشرده شدافکتها را پاک کننمایش و مخفی کردن
Section titled “نمایش و مخفی کردن”نمایش
- کاربرد: نمایش اسپرایت
وقتی پرچم سبز کلیک شدنمایشمخفی
- کاربرد: مخفی کردن اسپرایت
وقتی کلید h فشرده شدمخفیبلوکهای صدا (Sound) 🟢
Section titled “بلوکهای صدا (Sound) 🟢”بلوکهای صدا برای پخش و کنترل صداها استفاده میشوند.
پخش صدا
Section titled “پخش صدا”صدای () پخش کن
- کاربرد: پخش صدا بدون انتظار
وقتی این اسپرایت کلیک شدصدای meow پخش کنصدای () پخش کن و تا تمام شدن صبر کن
- کاربرد: پخش صدا با انتظار تا پایان
وقتی کلید m فشرده شدصدای music پخش کن و تا تمام شدن صبر کنهمه صداها را متوقف کن
- کاربرد: توقف تمام صداهای در حال پخش
وقتی کلید s فشرده شدهمه صداها را متوقف کنتنظیمات صدا
Section titled “تنظیمات صدا”افکت () صدا را () تغییر بده
- کاربرد: تغییر جلوههای صوتی
- افکتها: pitch، pan
وقتی کلید up arrow فشرده شدافکت pitch صدا را 10 تغییر بدهافکتهای صدا را پاک کن
- کاربرد: بازگشت به تنظیمات پیشفرض
وقتی پرچم سبز کلیک شدافکتهای صدا را پاک کنصدا را () تغییر بده
- کاربرد: تغییر بلندی صدا
وقتی کلید plus فشرده شدصدا را 10 تغییر بدهبلوکهای رویداد (Events) 🟡
Section titled “بلوکهای رویداد (Events) 🟡”بلوکهای رویداد برای شروع اجرای اسکریپتها استفاده میشوند.
رویدادهای اصلی
Section titled “رویدادهای اصلی”وقتی پرچم سبز کلیک شد
- کاربرد: شروع برنامه
وقتی پرچم سبز کلیک شد"بازی شروع شد!" بگووقتی کلید () فشرده شد
- کاربرد: واکنش به فشردن کلید
وقتی کلید space فشرده شد10 قدم حرکت کنوقتی این اسپرایت کلیک شد
- کاربرد: واکنش به کلیک روی اسپرایت
وقتی این اسپرایت کلیک شد"کلیک شدم!" بگووقتی backdrop به () تغییر کرد
- کاربرد: واکنش به تغییر پسزمینه
وقتی backdrop به forest تغییر کرد"وارد جنگل شدیم!" بگوارسال و دریافت پیام
Section titled “ارسال و دریافت پیام”() را broadcast کن
- کاربرد: ارسال پیام به همه اسپرایتها
وقتی کلید enter فشرده شد"شروع بازی" را broadcast کن() را broadcast کن و صبر کن
- کاربرد: ارسال پیام و انتظار تا پردازش
وقتی پرچم سبز کلیک شد"آمادهسازی" را broadcast کن و صبر کنوقتی () دریافت شد
- کاربرد: واکنش به دریافت پیام
وقتی "شروع بازی" دریافت شدبه موقعیت تصادفی بروبلوکهای کنترل (Control) 🟠
Section titled “بلوکهای کنترل (Control) 🟠”بلوکهای کنترل برای مدیریت جریان اجرای برنامه استفاده میشوند.
انتظار
Section titled “انتظار”() ثانیه صبر کن
- کاربرد: توقف موقت اجرای اسکریپت
وقتی پرچم سبز کلیک شد"آماده باش..." بگو3 ثانیه صبر کن"شروع!" بگوحلقهها
Section titled “حلقهها”همیشه
- کاربرد: تکرار بینهایت
وقتی پرچم سبز کلیک شدهمیشه 10 قدم حرکت کن اگر touching edge 180 درجه بچرخ پایانپایان() بار تکرار کن
- کاربرد: تکرار تعداد مشخص
وقتی کلید r فشرده شد4 بار تکرار کن 90 درجه راست بچرخ 10 قدم حرکت کنپایانتا () تکرار کن
- کاربرد: تکرار تا برقراری شرط
وقتی پرچم سبز کلیک شدتا touching edge 5 قدم حرکت کنپایانشرطها
Section titled “شرطها”اگر () آنگاه
- کاربرد: اجرای شرطی
وقتی کلید space فشرده شداگر touching Sprite1 "برخورد!" بگوپایاناگر () آنگاه وگرنه
- کاربرد: اجرای شرطی با جایگزین
همیشه اگر key space pressed? "فضا فشرده شده" بگو وگرنه "فضا فشرده نشده" بگو پایانپایانکنترل اجرا
Section titled “کنترل اجرا”همه را متوقف کن
- کاربرد: توقف تمام اسکریپتها
وقتی کلید q فشرده شدهمه را متوقف کنسایر اسکریپتهای این اسپرایت را متوقف کن
- کاربرد: توقف اسکریپتهای همین اسپرایت
وقتی "توقف" دریافت شدسایر اسکریپتهای این اسپرایت را متوقف کنکلونها
Section titled “کلونها”کلون () را ایجاد کن
- کاربرد: ایجاد کپی از اسپرایت
وقتی کلید c فشرده شدکلون خودم را ایجاد کنوقتی به عنوان کلون شروع شدم
- کاربرد: اجرای کد برای کلونهای جدید
وقتی به عنوان کلون شروع شدمبه موقعیت تصادفی برو5 ثانیه صبر کناین کلون را حذف کناین کلون را حذف کن
- کاربرد: حذف کلون فعلی
وقتی touching edgeاین کلون را حذف کنبلوکهای حسگر (Sensing) 🔵
Section titled “بلوکهای حسگر (Sensing) 🔵”بلوکهای حسگر برای دریافت اطلاعات از محیط استفاده میشوند.
تشخیص تماس
Section titled “تشخیص تماس”touching ()?
- کاربرد: بررسی تماس با اسپرایت یا لبه
- بازگشت: true/false
همیشه اگر touching Sprite1 "برخورد!" بگو پایانپایانtouching color ()?
- کاربرد: بررسی تماس با رنگ خاص
همیشه اگر touching color [قرمز] "روی قرمز هستم!" بگو پایانپایانcolor () is touching ()?
- کاربرد: بررسی تماس دو رنگ
اگر color [آبی] is touching [سبز] "رنگها تماس دارند!" بگوپایانفاصله و جهت
Section titled “فاصله و جهت”distance to ()
- کاربرد: محاسبه فاصله تا اسپرایت یا ماوس
- بازگشت: عدد (پیکسل)
همیشه اگر distance to mouse-pointer < 50 "ماوس نزدیک است!" بگو پایانپایانورودی کاربر
Section titled “ورودی کاربر”() بپرس و منتظر باش
- کاربرد: دریافت ورودی متنی از کاربر
وقتی پرچم سبز کلیک شد"اسم شما چیست؟" بپرس و منتظر باشjoin "سلام " answer بگوanswer
- کاربرد: دریافت آخرین پاسخ کاربر
- بازگشت: متن
وضعیت کلیدها و ماوس
Section titled “وضعیت کلیدها و ماوس”key () pressed?
- کاربرد: بررسی فشرده بودن کلید
- بازگشت: true/false
همیشه اگر key up arrow pressed? y را 5 تغییر بده پایانپایانmouse down?
- کاربرد: بررسی فشرده بودن ماوس
- بازگشت: true/false
همیشه اگر mouse down? به سمت mouse-pointer برو پایانپایانmouse x
- کاربرد: موقعیت افقی ماوس
- بازگشت: عدد
mouse y
- کاربرد: موقعیت عمودی ماوس
- بازگشت: عدد
timer
- کاربرد: زمان سپری شده از شروع پروژه
- بازگشت: عدد (ثانیه)
همیشه اگر timer > 60 "یک دقیقه گذشت!" بگو timer را reset کن پایانپایانtimer را reset کن
- کاربرد: صفر کردن تایمر
وقتی پرچم سبز کلیک شدtimer را reset کنبلوکهای عملگر (Operators) 🟢
Section titled “بلوکهای عملگر (Operators) 🟢”بلوکهای عملگر برای محاسبات ریاضی و منطقی استفاده میشوند.
عملگرهای ریاضی
Section titled “عملگرهای ریاضی”() + ()
- کاربرد: جمع دو عدد
امتیاز را امتیاز + 10 قرار بده() - ()
- کاربرد: تفریق دو عدد
انرژی را انرژی - 5 قرار بده() * ()
- کاربرد: ضرب دو عدد
مساحت را طول * عرض قرار بده() / ()
- کاربرد: تقسیم دو عدد
میانگین را مجموع / تعداد قرار بده() mod ()
- کاربرد: باقیمانده تقسیم
اگر شماره mod 2 = 0 "زوج است" بگووگرنه "فرد است" بگوپایانround ()
- کاربرد: گرد کردن به نزدیکترین عدد صحیح
نمره_نهایی را round نمره قرار بدهتوابع ریاضی
Section titled “توابع ریاضی”() of ()
- کاربرد: توابع ریاضی مختلف
- توابع: abs، floor، ceiling، sqrt، sin، cos، tan، asin، acos، atan، ln، log، e^، 10^
فاصله را sqrt ((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)) قرار بدهعملگرهای منطقی
Section titled “عملگرهای منطقی”() < ()
- کاربرد: مقایسه کوچکتر
- بازگشت: true/false
اگر امتیاز < 100 "نیاز به تمرین بیشتر!" بگوپایان() = ()
- کاربرد: مقایسه برابری
- بازگشت: true/false
اگر پاسخ = "بله" "عالی!" بگوپایان() > ()
- کاربرد: مقایسه بزرگتر
- بازگشت: true/false
اگر سرعت > 50 "خیلی سریع!" بگوپایان() and ()
- کاربرد: عملگر منطقی “و”
- بازگشت: true اگر هر دو شرط درست باشند
اگر (امتیاز > 50) and (زمان < 60) "عملکرد خوب!" بگوپایان() or ()
- کاربرد: عملگر منطقی “یا”
- بازگشت: true اگر حداقل یک شرط درست باشد
اگر (key space pressed?) or (mouse down?) "ورودی دریافت شد!" بگوپایانnot ()
- کاربرد: عملگر منطقی “نه”
- بازگشت: برعکس مقدار ورودی
اگر not touching edge 10 قدم حرکت کنپایانکار با متن
Section titled “کار با متن”join () ()
- کاربرد: اتصال دو متن
پیام را join "سلام " نام قرار بدهletter () of ()
- کاربرد: دریافت کاراکتر مشخص از متن
اولین_حرف را letter 1 of نام قرار بدهlength of ()
- کاربرد: طول متن
اگر length of رمز < 8 "رمز خیلی کوتاه است!" بگوپایان() contains ()?
- کاربرد: بررسی وجود زیرمتن
- بازگشت: true/false
اگر نام contains "علی" "سلام علی!" بگوپایانبلوکهای متغیر (Variables) 🟠
Section titled “بلوکهای متغیر (Variables) 🟠”بلوکهای متغیر برای ذخیره و مدیریت دادهها استفاده میشوند.
متغیرهای ساده
Section titled “متغیرهای ساده”() را () قرار بده
- کاربرد: تنظیم مقدار متغیر
وقتی پرچم سبز کلیک شدامتیاز را 0 قرار بده() را () تغییر بده
- کاربرد: تغییر مقدار متغیر
وقتی touching Starامتیاز را 10 تغییر بده() را نمایش بده
- کاربرد: نمایش متغیر روی صحنه
وقتی پرچم سبز کلیک شدامتیاز را نمایش بده() را مخفی کن
- کاربرد: مخفی کردن متغیر از صحنه
وقتی بازی تمام شدامتیاز را مخفی کنلیستها
Section titled “لیستها”() را به () اضافه کن
- کاربرد: اضافه کردن آیتم به انتهای لیست
"سیب" را به میوهها اضافه کن() را از () حذف کن
- کاربرد: حذف آیتم از موقعیت مشخص
1 را از میوهها حذف کنهمه () را حذف کن
- کاربرد: پاک کردن تمام آیتمهای لیست
همه میوهها را حذف کن() را در موقعیت () از () قرار بده
- کاربرد: قرار دادن آیتم در موقعیت مشخص
"موز" را در موقعیت 2 از میوهها قرار بده() را با () در () جایگزین کن
- کاربرد: تغییر آیتم در موقعیت مشخص
1 را با "انگور" در میوهها جایگزین کنitem () of ()
- کاربرد: دریافت آیتم از موقعیت مشخص
- بازگشت: مقدار آیتم
میوه_انتخابی را item 1 of میوهها قرار بدهitem # of () in ()
- کاربرد: پیدا کردن موقعیت آیتم در لیست
- بازگشت: شماره موقعیت (0 اگر پیدا نشود)
موقعیت را item # of "سیب" in میوهها قرار بدهlength of ()
- کاربرد: تعداد آیتمهای لیست
- بازگشت: عدد
تعداد را length of میوهها قرار بده() contains ()?
- کاربرد: بررسی وجود آیتم در لیست
- بازگشت: true/false
اگر میوهها contains "سیب" "سیب موجود است!" بگوپایاننکات پیشرفته
Section titled “نکات پیشرفته”بهینهسازی عملکرد
Section titled “بهینهسازی عملکرد”استفاده از متغیرهای محلی
Section titled “استفاده از متغیرهای محلی”// بهتر از استفاده از متغیرهای سراسری برای محاسبات موقتنتیجه_موقت را x position + y position قرار بدهمحدود کردن حلقههای بینهایت
Section titled “محدود کردن حلقههای بینهایت”همیشه // اضافه کردن شرط خروج اگر بازی_تمام_شده همه را متوقف کن پایان // باقی کد...پایاناستفاده مؤثر از کلونها
Section titled “استفاده مؤثر از کلونها”// محدود کردن تعداد کلونهااگر تعداد_کلونها < 10 کلون خودم را ایجاد کن تعداد_کلونها را 1 تغییر بدهپایانالگوهای طراحی
Section titled “الگوهای طراحی”ماشین حالت (State Machine)
Section titled “ماشین حالت (State Machine)”همیشه اگر حالت = "منتظر" // کد حالت انتظار وگرنه اگر حالت = "در_حال_بازی" // کد حالت بازی وگرنه اگر حالت = "تمام_شده" // کد حالت پایان پایان پایان پایانپایانسیستم رویداد
Section titled “سیستم رویداد”// ارسالکنندهوقتی کلید space فشرده شد"بازیکن_پرید" را broadcast کن
// دریافتکننده 1وقتی "بازیکن_پرید" دریافت شدصدای jump پخش کن
// دریافتکننده 2وقتی "بازیکن_پرید" دریافت شدافکت brightness را 20 تغییر بدهرفع اشکال
Section titled “رفع اشکال”نمایش مقادیر برای دیباگ
Section titled “نمایش مقادیر برای دیباگ”همیشه join join "x: " x position " y: " y position بگوپایاناستفاده از رنگها برای تست
Section titled “استفاده از رنگها برای تست”اگر touching color [قرمز] "خطر!" بگووگرنه اگر touching color [سبز] "امن!" بگو پایانپایانتست مرحلهای
Section titled “تست مرحلهای”// تست هر بخش جداگانهوقتی کلید 1 فشرده شد// تست حرکت10 قدم حرکت کن
وقتی کلید 2 فشرده شد// تست صداصدای meow پخش کنخلاصه و نکات پایانی
Section titled “خلاصه و نکات پایانی”نکات مهم
Section titled “نکات مهم”- تمرین مداوم: هر بلوک را در پروژههای مختلف امتحان کنید
- ترکیب خلاقانه: بلوکها را به روشهای جدید ترکیب کنید
- خواندن مستندات: همیشه توضیحات بلوکها را بخوانید
- تست و آزمایش: کدهای خود را مرتب تست کنید
- یادگیری از دیگران: پروژههای دیگران را بررسی کنید
منابع یادگیری بیشتر
Section titled “منابع یادگیری بیشتر”- مستندات رسمی Scratch: scratch.mit.edu
- انجمنهای کاربری: برای پرسش سوال و اشتراک تجربه
- آموزشهای ویدیویی: برای یادگیری بصری
- کتابهای تخصصی: برای مطالعه عمیقتر
موفق باشید در برنامهنویسی با Scratch! 🚀