مرجع بلوکها
مرجع کامل بلوکهای 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! 🚀