The Starry Night
در این پروژه اسکرچ از 6 شخصیت استفاده شده است و هر کدام از شخصیت ها وظایف مخصوص خودشان را دارند که ما این وظایف را با برنامه نویسی به هریک از آن ها تخصیص داده ایم. اگر به تمام شخصیت های استفاده شده در این پروژه اسکرچ نگاهی بیاندازید خواهید دید تمام آن ها وظایفی را که در غالب دستورات برنامه نویسی به آن ها واگذار شده است با رویداد کلیک روی پرچم سبز انجام می دهند. به عبارت ساده تر تمام شخصیت های استفاده شده در این پروژه اسکرچ منتظر رخ دادن رویداد کلیک روی پرچم سبز هستند که این رویداد بایستی توسط فرد بیننده انیمیشن رخ دهد. تحلیل این مثال اسکرچ را از دستورات برنامه نویسی نوشته در صفحه script مربوط به صحنه نمایش شروع می کنیم. اگر نگاهی به صفحه برنامه نویسی صحنه نمایش بیاندازید می بینید که یک دستور پخش صدا در یک حلقه forever گذاشته شده است. هر دوی این دستورات به رویداد پرچم سبز کلیک متصل شده اند معنی این 3 دستور یعنی چی؟ یعنی این که وقتی فرد بیننده انیمیشن روی پرچم سبز کلیک کند تا بی نهایت بار پشت سرهم فایل صوتی پخش می شود. استفاده از حلقه forever یعنی هیچ گاه دستورات درون این حلقه متوقف نمی شوند و پشت سرهم تا زمانی که کل برنامه متوقف نشده است اجرا می شوند، که در این قسمت تنها یک دستور play sound داخل حقله forever می باشد. بنابراین فقط همین دستور بی نهایت بار اجرا می گردد. به سراغ شخصیت sprite1 می رویم تا باهم دستورات برنامه نویسی انجام شده در این شخصیت را بررسی کنیم. همان طور که در صفحه script مشخص شده است مجموعه ای از دستورات برنامه نویسی پاسخ به رویداد پرچم سبز کلیک هستند یعنی تمامی این دستورات قرار است بلافاصله بعد از کلیک بازیکن روی پرچم سبز اجرا شوند. در ابتدا دستور set size to 50% سایز شخصیت را با عدد پنجاه تنظیم می کند که این مقدار باعث کوچک شدن sprite1 می گردد. بعد از اجرا شدن این دستور wait 12 secs اجرا می گردد که باعث ایجاد یک وقفه به مدت 12 ثانیه در اجرای دستور بعدی یعنی repeat می گردد. به عبارت دیگر اجرای دستور repeat با 12 ثانیه تاخیر انجام می شود چرا که موتور اجرا کننده دستورات اسکرچ وقتی به دستور wait 12 secs می رسد 12 ثانیه منتظر مانده و بعد اجرای دستور repeat را آغاز می کند. بعد از گذشته زمان 12 ثانیه دستور repeat 10 اجرا می گردد که در نتیجه اجرای این دستور که یک ساختار تکرار در زبان برنامه نویسی اسکرچ است، دستور change size by 5 که درون دستور repeat قرار گرفته است وقتی به میزان 10 بار توسط repeat تکرار می شود باعث می شود اندازه شخصیت دو برابر شود. این دو دستور در واقع معادل یک دستور change size by 50 می باشد. بعد از اجرا شدن حلقه تکرار repeat 10 نوبت به اجرا شدن حلقه تکرار repeat 24 می شود. هدف از نوشتن این حلقه چراخندن ستاره چشمک زن در بازی است که وقتی این شخصیت به اندازه 15 درجه می چرخد و 24 بار اجرا می شود اینگاری که یک دور کامل (360 درجه( زده است. اما برای اینکه این چرخش قابل رویت باشد به این صورت نوشته شده است اما اگر قرار بود شخصیت sprite1 یک دور کامل بزند و دوباره سرجایش قرار بگیرد می توانستیم از دستور turn 360 degrees استفاده کنیم با این تفاوت که دیگر چرخش شخصیت به دور خود را نمی دیدیم. بعد از اجرا شدن حلقه تکرار repeat 24 نوبت به اجرای حلقه تکرار کوچک کننده sprite1 می رسد. در ابتدای این رویداد کلیک روی پرچم سبز اگر یادتان باشد یک حلقه تکرار repeat 10 گذاشته شده بود که درون آن یک دستور change size by 5 بود که گفتیم باعث دو برابر شدن اندازه شخصیت می شود. حال در این جا همان حلقه تکرار با مقدار change size by -5 باعث کوچک شدن اندازه شخصیت می گردد. به عبارت دیگر حلقه اول که 10 بار اجرا گردید با دستور change size by 5 مقدار شخصیت را دو برابر کرد و حال اینبار یک حلقه تکرار repeate که دستور change size by -5 را اجرا می کند اندازه این شخصیت را نصف می کند.حال نوبت به اجرای حلقه forever می رسد. این را می دانیم اگر اسکرچ وارد این حلقه شود دستورات آن را بی نهایت بار اجرا می کند و دیگر هرگز از آن خارج نمی شود. اولین دستور داخل حلقه forever یک دستور wait است که به میزان عددی که در جلوی آن نوشته شود اجرای دستورات بعدی را معطل می کند. اما این بار یک عدد مشخصی در دستور wait نوشته نشده است بلکه این عدد با دستور بسیار زیبای pick random تولید شده است. به این خاطر از دستور pick random 5 to 15 استفاده شده است که هر بار حلقه forever اجرا گردید یک میزان شانسی منتظر بماند تا چشمک زدن شخصیت sprite1 طبیعی تر به نظر می رسد. اگر برنامه نویس از یک عدد مشخص مثلا 10 برای دستور wait استفاده می کرد همیشه مقدار انتظار 10 بود که جذاب به نظر نمی رسید. به همین خاطر استفاده از دستور تولید یک عدد شانسی بین 1 تا 10 با استفاده از دستور pick random برنامه و بازی ساخته شده را زیباتر می کند. بعد از این دستور نیز 3 حلقه تکرار آمده است که وظیقه آن ها بزرگتر کردن شخصیت sprite1 و سپس چرخاندن آن به اندازه 360 درجه و در آخر کوچک کردن شخصیت sprite1 می باشند. این حلقه ها دقیقا قبل از حلقه تکرار forever نیز آمده بودند و همین کار را انجام می دادند پس به نظر می رسد تکرار آن ها در قبل اضافی بوده است به عنوان تمرین می توانید این پروژه اسکرچ را طوری تغییر دهید که فقط با استفاده از حلقه های repeat که داخل forever نوشته شده است برنامه ساخته شود و دقیقا همین عکلکرد را نیز داشته باشد. یعنی به عنوان تمرین طوری باید پروژه را تغییر دهید که دیگر نیازی به 3 حلقه repeat استفاده شده که قبل از حلقه forever نباشد. همچنین می توانید دستور wait که قبل از حلقه forever استفاده شده است را نیز حذف نمایید به این ترتیب پروژه ای ساخته اید که دستورات کمتری دارد و همین کار را نیز انجام می دهد.برای دو شخصیت sprite2 و sprite4 دستورات برنامه نویسی نوشته شده یکسان است. در هر دو شخصیت بلافاصله بعد از کلیک کردن بازیکن روی پرچم سبز، اندازه شخصیت ها به اندازه 40% تنظیم می شود.به صفحه script مربوط به شخصیت sprite6 می رویم تا دستورات آن جا را نیز بررسی کنیم. دستورات این شخصیت نیز بسیار ساده است. یک رویداد پرچم سبز کلیک نشان دهنده این است که شخصیت sprite6 نیز همانند شخصیت های دیگر منتظر رخ دادن رویداد کلیک شدن روی پرچم سبز است. وقتی بازیکن روی پرچم سبز کلیک کند شخصیت به نقطه 159 و -24 منتقل شده و نمایش داده می شود. به عنوان تمرین در خانه می توانید محل این شخصیت را در همان نقطه 159 و -24 قرار داده و تیک Show این شخصیت را بزنید تا در حال نمایش باشد در این صورت دیگر نیازی به برنامه نویسی های انجام شده برای این شخصیت نیست.به سراغ آخرین شخصیت این پروژه یعنی sprite 5 می رویم. همان طور که در صفحه script این شخصیت مشاهده می کنید دستورات برنامه نویسی نوشته شده در این شخصیت منتظر رخ دادن سه رویداد مختلف می باشند. وقتی که بازیکن دکه space کیبورد را فشار دهد رویداد when space key pressed اتفاق می افتد سپس دستور next costume که منتظر رخ دادن این رویداد بوده است بلافاصله اجرا می شود. بنابراین با زدن دکمه space توسط بازیکن، شکل فعلی شخصیت جای خود را به شکل بعدی شخصیت می دهد. وقتی بازیکن دکمه پایین جهت نمای کیبورد را فشار دهد تمامی شکل های ستاره ای که توسط بازیکن بر روی صفحه نمایش کشیده شده است پاک می شود و اینکار با اجرا شدن دستور clear اجرا می گردد.وقتی که درsprite5 بازیکن روی پرچم سبز کلیک می کند ابتدا دستور clear اجرا می شود. با اجرا شدن دستور clear هر ستاره ای که در اجراهای قبلی بازی توسط بازیکن روی صحنه نمایش کشیده شده است پاک می شود و اینکار در واقع عمل restart کردن بازی را انجام می دهد تا وقتی بازیکن بعد از بازی روی پرچم سبز کلیک کرد همه چیز به حالت اول برگردد. از آن جایی که بازیکن می توانست با زدن دکمه space شکل شخصیت را تغییر دهد، در این جا دستورswitch coustume to costume1 اجرا می شود تا شخصیت را از هر شکلی که هم اکنون دارد به شکل اولیه بازگرداند. روند بالا به پایین اجرای دستورات در زبان برنامه نویسی اسکرچ باعث می شود که بعد از اجرای دستور switch coustume to، حلقه تکرار forever اجرا گردد. این را می دانیم که اگر اجرای دستورات اسکرچ به داخل حلقه تکرار forever برود دیگر از آن خارج نمی شود و تا زمانی که برنامه در حال اجرا باشد، دستورات داخل حلقه forever را اجرا می کند. اما معنی و مفهوم دستورات داخل این حلقه forever چیست؟ در ابتدا دستور go to mouse pointer نوشته شده است که باعث می شود هرجا که مکان نمای موس به آن جا رفت، شخصیت sprite5 نیز دنبال آن برود به طوری که اینگار شخصیت sprite5 موس را تعقیب می کند. در هر بار اجرای حلقه forever بررسی می شود که آیا کلیک سمت چپ موس فشار داده شده است؟ اگر پاسخ مثبت است یعنی کلیک سمت چپ موس توسط بازیکن فشار داده شده باشد، عبارت شرطی if درست است (true است) بنابراین چون عبارت شرطی درست است دستور if اجازه اجرا شدنه دستور داخلش را به اسکرچ صادر می نماید بنابراین دستور stamp اجرا می گردد. دستور stamp نیز وقتی که اجرا شود یکی از شخصیت sprite5 روی صحنه نمایش نقاشی می کند. این دستور همان طور که از نامش پیداست شبیه وسیله stamp است که برای زدن مهر روی کاغذ و یا اثر انگشت نیز در دنیای واقعی استفاده می شود. برای شروع کار با اسکرچ می توانید مقاله
دانلود اسکرچ و آموزش نصب اسکرچ را مطالعه نمایید.شما می توانید با استفاده از دستورات تب Pen در نرم افزار اسکرچ، نسخه های دیگری از این پروژه بسازید و برای ما ارسال نمایید تا ما پروژه های ارسالی شما را با نام خودتان در سایت مارکت 021 قرار دهیم. برای اینکار کافی است در سایت مارکت 021 ثبت نام کرده و ار طریق همان ایمیلی که در سایت ثبت نام کرده اید پروژه خود را به آدرس scratch@market021.com ارسال کنید تا ما بعد از بررسی پروژه اسکرچ شما، آن را در سایت قرار دهیم. برای دانلود فایل های این پروژه می توانید به انتهای مطالب در همین صفحه مراجعه کنید.