به نام خدای رنگین کمان!
به جلسه چهارم آموزش اسکرچ خوش اومدید. در این آموزش در مورد ساخت بازی در اسکرچ صحبت میکنم و شما رو وارد دنیای جذاب بازی سازی در اسکرچ میکنم. با من همراه باشید

فهرست مطالب

ساخت بازی در اسکرچ

برای ساخت بازی در اسکرچ باید چند تا مفهوم مهم در اسکرچ رو یاد بگیرید: ساختار تکرار، ساختار شرط و متغیرها.
این 3 تا مفهوم، مفاهیم پایه و لازم برای ساخت بازی هستن. من در ادامه در مورد این 3 تا مفهوم به صورت کامل صحبت میکنم اما میخوام خیلی ساده این 3 تا مفهوم رو بهتون بگم. این بازی رو در نظر بگیرید:
یه تعدادی توپ بسکتبال در صفحه حرکت میکنن و ما باید توپ فوتبال رو در صفحه حرکت بدیم که به توپ بسکتبال نخوره! هرچقدر بیشتر بازیمون طول بکشه امتیازمون بیشتر میشه.
یک بازی ساده در اسکرچ

1- شما برای نوشتن این بازی نیاز دارید کاری کنید که توپهای بسکتبال مدام در صفحه حرکت کنند. برای اینکار باید از ساختار تکرار استفاده کنید
2- شما باید کاری کنید که کاربر توپ فوتبال رو در بازی حرکت بده و به محض اینکه با توپ بسکتبال برخورد کرد بازی متوقف بشه. برای اینکه بتونید تشخیص بدید که توپ فوتبال با توپ بسکتبال برخورد کرده باید از ساختار شرط استفاده کنید.
3- هر بازی نیاز به نمایش امتیاز داره. برای اینکه بتونید امتیاز بازی رو یه جا نگه داری کنید و به کاربر نمایش بدید باید کار با متغیرها رو بلد باشید.

در ادامه هر سه تا مفهوم رو بیشتر یاد میگیرید.

تکرار در اسکرچ

برای اینکه ساختار تکرار در اسکرچ رو بهتر یاد بگیرید این کار رو انجام بدید:
یک توپ بسکتبال به اسکرچ اضافه کنید. و این دستورات رو بهش بدید:

من در ویدیوی بالا این مفهوم رو کامل توضیح دادم و پیشنهادم اینه که ویدیو رو ببینید اما اینجا مختصر و مفید توضیح میدم:
در بازیهایی که ما مینویسیم بعضی وقتا نیازه یه سری از دستورات رو مدام تکرار کنیم. مثلا وقتی یک توپ از چپ به راست حرکت میکنه این حرکت در اصل میشه تکرار تعداد زیادی از این دستور:  “حرکت کن 10 گام”
دقت کردید چی شد؟ تو ذهنتون تصور کنید. یه توپ رو 10 گام 10 گام ببرید جلو! وقتی این اتفاق سریع و پشت سر هم میوفته مثل این میمونه که توپ داره حرکت میکنه.
برای اینکه بتونیم دستور حرکت کن رو چندین بار تکرار کنیم باید از ساختار تکرار استفاده کنیم. ما 3 تا ساختار تکرار داریم:
تکرار کن 10 ، برای همیشه، تکرار کن تا اینکه

تکرار کن 10

دانشگاه برنامه نویسان جلسه 4 - ساخت بازی در اسکرچ

این بلاک اینجوری کار میکنه:
هر دستور (یا دستوراتی) داخل این بلاک قرار بگیره 10 بار تکرار میشه. اگه دوست داشته باشی میتونی عدد 10 رو هم تغییر بدی. مثلا دستور زیر باعث میشه کاراکتر شما 10 بار به اندازه 10 گام بره جلو:

تکرار کن 10 بار، 10 گام برو جلو

برای همیشه

برای همیشه

این بلاک اینجوری کار میکنه:
هر دستور (یا دستوراتی) داخل این بلاک قرار بگیره تا آخر پروژه اجرا میشه. مگر اینکه پروژه رو متوقف کنید. مثلا دستور زیر باعث میشه کاراکتر تا آخر 10 گام بره جلو(در جهت خودش)

برای همیشه 10 گام برو جلو

تکرار کن تا اینکه

تکرار کن تا اینکه

این بلاک اینجوری کار میکنه:
هر دستور (یا دستوراتی) داخل این بلاک قرار بگیره اجرا میشه تا اینکه شرطی که براش مشخص میکنیم درست بشه. به محض اینکه شرط درست شد دستورات متوقف میشن. الان شاید این بلاک رو خوب درک نکنید. آموزشهای بعدی در موردش بیشتر صحبت میکنم.

اگر دقت کنید پایین بلاک “تکرار کن 10” و “تکرار کن تا اینکه” یه برجستگی وجود داره ولی “برای همیشه” اینجوری نیست. دلیلش هم اینه که مثلا دستور “تکرار کن 10” وقتی اجرا میشه بعد از 10 بار اجرای دستورات تموم میشه و ادامه دستورات (که زیر اون برجستگی براش مشخص میکنیم) اجرا میشه. اما دستور “برای همیشه” هیچ وقت تموم نمیشه و تا آخر این دستورات اجرا میشن. پس هیچ وقت این بلاک تموم نمیشه که بخواد ادامه دستورات اجرا بشه.

مداد - تعریف پروژه
تا اینجا ازتون انتظار دارم که یک توپ بسکتبال به اسکرچ اضافه کنید و دستوراتی که بهتون گفتم رو داخلش بذارید تا توپ شما در صفحه حرکت کنه. بعد از اینکه این کار رو کردیدتوپ بسکتبالتون رو تکثیر کنید و دستورات “برو به x و y” و در “جهت… قرار بگیر” رو تغییر بدید که هر کدوم از توپها از یک نقطه و جهت مشخص شروع به حرکت کنند. این کار رو که انجام دادید یعنی شما آماده اید که ویدیوی زیر رو ببینید 🙂

شرط در اسکرچ

برای اینکه مفهوم شرط در اسکرچ رو بهتر یاد بگیرید بازی رو اینجوری در نظر بگیریم:
من تا اینجا 4 تا توپ بسکتبال درست کردم که در صفحه بازی حرکت میکنن و الان میخوام یه توپ فوتبال به بازی اضافه کنم و یه سری دستورات به توپ اضافه کنم که با دکمه های چپ، راست، بالا و پایین توپ فوتبال رو تو بازی به حرکت در بیارم. با حرکت توپ فوتبالم میخوام از توپهای بسکتبال فرار کنم و بهشون برخورد نکنم. پس در قدم اول توپ فوتبال رو به بازی اضافه میکنیم و این دستورات رو براش مینویسیم.

بعد از اینکه این دستورات رو نوشتید میرسیم به اصل داستان! و اونم اینه: از کجا تشخیص بدیم که توپ فوتبال به توپ بسکتبال برخورد کرده؟ من میخوام کاری کنم که اگر توپ بسکتبال به توپ فوتبال برخورد کرد بازی متوقف بشه. دستور زیر رو با این فرض نگاه کنید که قراره در  توپ بسکتبال ازش استفاده کنیم:

همونطور که دارید میبینید من گفتم اگر خوردی به توپ فوتبال آنگاه متوقف شو!
با این کاری که ما کردیم در اصل از ساختار شرط استفاده کردیم. یعنی داریم میگیم اگر شرطی که من برات میذارم (اینجا میشه برخورد با توپ فوتبال) اتفاق افتاد همه دستورات رو متوقف کن. پس با دستور بالا چند تا چیز یاد گرفتید:
1- ساختار شرط:  اگر میخواهید در برنامتون شرط بذارید باید از دسته بندی کنترل، اگر … آنگاه رو پیدا کنید
2- تشخیص: هر اگری به یک یا چند تا شرط نیاز داره. شرطها رو از دسته بندی تشخیص باید اضافه کنید. برای مثال، دستور “خوردی به…” اولین دستور دسته بندی تشخیص است.
3- توقف همه:
با این دستور همه دستورات برنامه متوقف میشه. دقت کنید: همه دستورات. یعنی دستورات کاراکترهای دیگه هم اگر در حال اجراست متوقف میشه

هنوز تموم نشده!

همونجور که گفتم دستورِ اگر رو باید به توپ بسکتبال اضافه کنید. اما دقیقا کجا باید اضافه کنید؟ یه سوال ازتون میپرسم، این شرط رو فقط یکبار باید چک کنیم یا برای همیشه باید چک کنیم؟
ما باید برای همیشه چک کنیم و ببینیم آیا توپ بسکتبال با توپ فوتبال برخورد میکنه یا نه. پس دستورات نهایی توپ بسکتبالمون اینجوری میشه:

دانشگاه برنامه نویسان جلسه 4 - ساخت بازی در اسکرچ
لپتاپ - برنامه نویسی

ممکنه با دیدن دستورات حرکت توپ فوتبال این سوال براتون پیش بیاد: فرق دستور “تغییر x به اندازه 10” و دستور “حرکت کن 10 گام” چیه. پیشنهاد میکنم حتما آموزش محور مختصات در اسکرچ رو ببینید. اونجا کامل در موردش صحبت کردم

متغیر در اسکرچ

اول آموزش بهتون گفتم برای ساخت بازی در اسکرچ باید ساختار تکرار، ساختار شرط و متغیرها رو یاد بگیرید. دو تای اولی رو بهتون گفتم و برای اینکه آموزش طولانی نشه و خسته نشید آموزش متغیر رو در جلسه بعدی بهتون میگم. در ادامه چند تا ایده بهتون میدم که چطور میتونید این بازی که تا اینجا نوشتید رو قشنگ تر کنید.

برنامه نویس

بانک ایده جلسه 4

بانک ایده جاییه که ذهن شما رو خلاق تر میکنه. در آموزش امروز شما یه سری دستورات یاد گرفتید، یه توانمندیهایی پیدا کردید و در ادامه یه سری ایده میخوام بهتون بدم که بتونید بازی خودتون رو قشنگ تر کنید. شاید الان نتونید ایده ها رو پیاده کنید، ولی یه جایی تو گوشه ذهنتون داشته باشید و بعدا به وقتش ازش استفاده کنید. ایده ها رو با دقت بخونید و شما هم اگه ایده ای داشتید در قسمت نظرات این نوشته بنویسید.

1- اضافه کردن امتیاز به بازی:
میتونید یک زمان سنج به بازیتون اضافه کنید و هر یک ثانیه که بازی در جریانه یک امتیاز به کاربرتون بدید. اینجوری بازی حالت رقابتی تر میگیره و قشنگ تر میشه.
 
2- حرکت توپ فوتبال رو نرم تر کنید:
اگر بازی رو تا اینجا که من درست کردم شما هم درست کنید و امتحان کنید متوجه یک مشکل میشید، و اونم اینه که کاراکتر توپ یه خورده با وقفه جابجا میشه و شاید یه جورایی اینجوری به نظر برسه: بازی کنده. در ساخت بازی در اسکرچ باید حواستون باشه کاراکتر اصلی بازی جوری درست بشه که کاراکتر در کنترل کاربر باشه. یعنی اگه کاربر میخواد کاراکتر بره سمت راست سریع بره سمت راست و وقفه ای نیفته.
 
3- توپ فوتبالتون رو به موس بچسبونید:
این ایده خیلی باحاله! کاری کنید که با حرکت موس توپیتون هم جابجا بشه. اینجوری مشکل مورد 2 هم حل میشه. کافیه کاربر موسش رو جابجا کنه تا توپ فوتبال رو راحت بتونه جابجا کنه.
 
4- سطح بازی با گذر زمان سخت تر بشه:
کاری کنید که هر چی از زمان بازی میگذره بازی سخت تر بشه. برای سخت شدن بازی باید توپ بسکتبالتون با سرعت بیشتری جابجا بشه. البته برای اینکه این کار رو بتونید انجام بدید اول باید مورد 1 رو درست کنید.
 
5- شما بگید.
در قسمت نظرات ایدتون رو بگید که چطور میشه بازی رو قشنگ تر کرد؟

 

این ایده ها رو چطور پیاده سازی کنم؟

همونطور که گفتم قرار نیست همه این ایده ها رو الان بلد باشید پیاده کنید. مورد 1 رو من در جلسه بعدی بهتون میگم و مورد 2 تا 4  رو در دوره قهرمان اسکرچ آموزش دادم. اگه دوست داشتید میتونید اون دوره رو تهیه کنید. در دوره قهرمان اسکرچ آموزش کلی بازی قشنگ قرار دادم و شما بازی سازی در اسکرچ رو خیلی خوب یاد میگیرید

آنچه در ادامه یاد میگیرید

در جلسه بعد شما یاد میگیرید که چطور از متغیرها استفاده کنید و به بازیتون امتیاز اضافه کنید. امتیاز بازی شما رو رقابتی تر و قشنگ تر میکنه.

جلسه 5 - متغیر در اسکرچ
سوال

ممنون که تا اینجا همراه من بودید. اگر از محتوای آموزش سوالی دارید در قسمت نظرات سوالتتون رو بپرسید. حتما سوالات شما رو میخونم و بهشون جواب میدم. اگر هم فکر میکنید این مقاله برای دوستانتون مفیده، باهاشون به اشتراک بذارید.