فصل چهارم:پیمایش Scene ها
قبلاَ تاحدودی با کلاس های Scene و Layer آشنا شدیم اما برای مرور یادآور می شوم که یک سین(scene) مجموعه ای از لایه (Layer) هاست و در هر نمایش فقط یک سین قابل نمایش وجود دارد در حالی که این سین خود می تواند شامل لایه های مختلف باشد .
ما بازی را به مجوعه ای از سین ها تقسیم بندی می کنیم .که از آنها برای مصارف خاصی مانند منوی بازی ، سپلش اسکرین ،صفحه تنظیمات ، صفحه اصلی بازی ، در باره ما و ... استفاده می کنیم .
اما از آنجا که در آن واحد فقط می توان یک سین را مشاهده کرد، ما از کلاسی با نام Director برای مدیریت این سین ها استفاده می کنیم که در مواقع مورد نیاز بین سین های مختلف پیمایش های لازم را انجام می دهیم .
از آنجا که بیشتر کارهای انجام شده در این فصل قبلاَ انجام شده است پس به صورت خلاصه آنها را ذکر می کنم :
- هدف اصلی ایجاد سین هایی برای صفحه اسپلش و صفحه اصلی بازی است .
- بک گراند مربوط به صفحه اسپلش را با نام splash.png را به پوشه منابع اضافه می کنیم و در فایل resourse.js نیز آن را ثبت می کنیم.
- یک فایل js جدید با نام splash.js به پروژه اضافه می کنیم .
- در فایل splash.js یک سن جدید با نام SplshScene ایجاد کرده و بعد از ایجاد لایه ای با نام SplashScreenLayer آن را به سین اضافه می کنیم .
5. در فایل splash.js و در تابع سازنده لایه SplashLayer یک تابع را از طریق متد schedule که در فصل قبل ذکر شد به صورت مکرر فراخوانی می کنیم تا با یک تاخیر زمانی خاص (در اینجا 5 ثانیه ) برسیم و سپس با استفاده کلاس cc.director به سین بعدی مراجعه می کنیم .
cc.director.runScene(new MainMenuScene());
6.و برای آنکه صفحه اسپلش اسکرین هم اولین صفحه ای باشد که اجرا می شود در فایل main.js نیز کلاس SplashScene را به عنوان اولین سین فراخوانی می کنیم .
cc.director.runScene(new SplshScene());
7. فایل js دیگری با نام GameScene ایحاد می کنیم و سین و لایه های مربوط به آن را نیز ایجاد می کنیم و پس از کلیک بر روی دکمه شروع بازی به این سین منتقل می شویم .
توجه : من در این فصل اسم فایل app.js را که در چند فصل قبل با آن کار می کردیم به MenuScene.js تغیر نام دادم .
برای اینکار کافی است که که در رویدادی که برای کلیک دکه شروع بازی تعریف کردیم به سین GameScene مراجعه کنیم .
cc.director.runScene(new GameScense());
و تمام...
- اگر می بینید که مطالب این فصل به صورت خلاصه بیان شده است به این خاطر است که اکثر مطالب در فصول قبلی مورد بحث قرار گرفته است و نیازی به تکرار مجدد آنها نبود .
- چنانچه با خطای با عنوان عدم تعریف سین های جدید در Cocos IDE رو به رو شدید(در برنامه های که خودتون ایجاد می کنید)احتمالا به علت عدم اضافه شدن اتوماتیک فایل جدید به فایل پروژه cocos ide است که برای حل این خطا کافی است به صورت دستی فایل خود را به فایل project.json موجود در ریشه پروژه و در بخش jsList اضافه کنید .(البته من فقط یک بار این مشکل برام پیش اومد)