Arvanttt

تند و سریع

Arvant

تند و سریع












مهندسی نرم افزار یکی از بحث های است که برای پیش برد هر محصول نرم افزاری نیاز است .فرقی نمی کند شما برای تولید نرم افزارتان یک تیم یک نفره دارید یا یک تیم n نفره به هر حال شما در حال مهندسی یک نرم افزار هستید.

سرانجام امروز بازی egg oh  در بازار قرار گرفت و امیدوارم مورد حمایت هم وطنان عزیز قرار گرفته و فروش مناسبی در کافه بازار داشته باشه.

دوستان میتونند این باز رو از امروز از کافه بازار دانلود کرده ونظراتشون رو با من در میان بزارند

قبلاَ تاحدودی با کلاس های Scene و Layer آشنا شدیم اما برای مرور یادآور می شوم که یک سین(scene) مجموعه ای از لایه  (Layer) هاست و در هر نمایش فقط یک سین قابل نمایش وجود دارد در حالی که این سین خود می تواند شامل لایه های مختلف باشد .

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

درنهایت پس مدت زمانی بس طولانی بازی Egg Oh امروز در app store ارائه شد .هرچند که که به علت نبود تبلیغات فکر می کنم توفیق چندان حاصل نشه ولی حسی که معمولاَ برای اولین برنامه آن هم به صورت جهانی به آدم دست می دهد حس خوبی است که شاید ناکامی های فروش کم آن را خنثی کند .

چه روی سیستم تان نسخه از لینوکس را نصب شده داشته باشید یا نه ،به عنوان فردی که به صورت تخصصی با کامیپوتر سر و کار دارد احتمالا بار ها مطالبی پیرامون نرم افزار های آزاد شنیده اید .دنیای نرم افزار های آزاد پر است از حرکات خود جوشی که هرکدام دستاورد های خاص خود را دارد .هسته لینوکس ، بیشتر نرم افزار های موجود ، دستکتاپ های معروف KDE ،Gnome و ... و یا حتی بیشتر cms های معروف مانند وردپرس همگی نمونه های از این جنبش های خود جوش هستند .در ایران نیز این جنبش بیشتر در زمینه های تبلیغاتی و برای آشنایی جامعه با فلسفه نرم افزار های آزاد شکل گرفته اند  و افراد مختلف در شهر های مختلف با ایجاد لاگ های لینوکسی سعی در معرفی این دنیای متن باز به دیگران کرده اند .اینگونه حرکات به علت ماهیت اجتماعیشان ، پایداریشان بیشتر وابسته به تیمی است که در پس این حرکت قرار داردند و چه بسا حرکاتی که در نیمه راه بار و بندیلشان را بسته و راه را ادامه ندادند مثل لینوکس اف ام خدا بیامرز .اما جدیداَ ماهنامه ای با حمایت ها مردمی شکل گرفته است با نام سلام دنیا که در انتشار سومین نسخه  تصمیم گرفتم  به عنوان تبلیغات هم که شده به نوبه خودم از این حرکت کمال تشکر را داشته باشم و دیگران را نیز تشویق کنم به حمایت و مطالعه این مجله پر محتوا و زیبا که فعلاَ سه نسخه از آن منتشر شده است و می توانید از سایت اصلی آن تمامی نسخه ها را به رایگان دانلود کنید .

حالا که در حال و هوای بازی flappy bird هستیم بد نیست بازی el را هم امتحان کنید یک بازی با گرافیکی زیبا و موسیقی متن دلنشین.همانند همه رویا های کودکانه ما ، el نیز دنیایی سرشار از صلح را در سر دارد و برای رسیدن به این صلح چترش که که شاید نمادی از رویاهایش باشد را در اختیار دارد و با آن از زندانی که در آن گرفتار است نجات یافته و حتی بچه ای را به مادرش و یا پدری را به فرزندش و یا بدکاری را متوجه عمل بدش می کند .جنگ که در دنیای کودکانه شاید دلیلی جز انسان های زشتی نداشته باشد که همگی برای هدفی خاص هزاران بچه را بی سرپناه کرده و یا خانواده ها را از هم جدا میکنند جایی ندارد و در این دنیای زیبا می توان حتی به دشمنی که رو در روی تو ایستاده  و قصد کشتن تو را دارد سیبی تعارف کرد از جنس دوستی و مطمان بود که حتی اگر دوستی تو بر دل دشمن ننشست باز فرشته مهربان همواره یار و یاور  بچه هاست.

البته اینها همه داستان سرایی های من بود و شاید فلسفه ای که پشت داستان بازی بود چیزی ورای آن باشد.

انیمیشن :

در حالت کلی همان طور که یک فیلم حاصل نمایش یک سری عکس پشت سر هم است که با سرعت مشخص چنان حرکت می کنند که تفکیک این عکس ها توسط چشم انسان قابل تشخیص نیست و به همین دلیل این تصاویر به صورت مجموعه عناصری متحرک دیده می شوند انیمیشن های بازی هم از این قانون بهره می برند و با نمایش مجموعه ای از تصاویر حس متحرک بودن را القا می کنند.در یک انجین دو بعدی نیز یک انیمیشن حاصل مجموعه ای مرتب از تصاویر است که در یک بازه زمانی با ترتیب خاص بر روی صفحه نمایش داده می شوند .

آشنایی با اکشن ها:

Action عبارت است از رفتار خاصی که ما برای رسیدن به  هدف مورد نظر  بر روی اسپرایت اعمال می کنیم .انجین cocos2d-x  از اکشن های متفاوتی پشتیبانی می کند که در پروژه نمونه می توانید آنها را مشاهده کرده و فراخور نیاز از آنها استفاده کنید .

مثال های زیر همگی گونه ای از این اکشن ها هستند :

cc.moveTo/cc.moveBy:این اکشن باعث جابه جای اسپرایت به محل تعین شده می شود .

cc.scaleTo/cc.scaleBy: باعث تغیر اندازه اسپرایت به اندازه مورد نظر می شود .

cc.rotateTo/cc.rotateBy : باعث چرخش اسپرایت با زاویه مورد نظر می شود .

cc.jumpTo/cc.jumpBy: باعث جابه جایی به نقطه مورد نظر همراه با حرکت عرضی و طولی می شود که حالتی شبیه پرش را براساس  اندازه حداکثر ارتفاع و تعداد پرش  ایجاد می کند .

و....

فصل اول پس از انجام تغیراتی کوچک بر روی پروژه قبلی به معرفی کلاس اسپریت و همچنین نحوه تعریف دکمه ها می پردازد

 

سایز منابع :

تمام منابع گرافیکی بازی بر اساس سایز 480*320 در نظر گرفته می شود و برای اینکه صفحه بازی طبق همین الگو به نمایش در بیاید در فایل Main.js  در ریشه پروژه مقادیر مورد نظر را به صورت زیر تغیر می دهیم  . با این کار برای انجین مشخص می کنیم که سایز استاندار ما همین سایز است و ما کلیه مقادیر را بر این اساس مقدار دهی می کنیم .

 

cc.view.setDesignResolutionSize(320, 480, cc.ResolutionPolicy.SHOW_ALL);

تغیر نام کلاس  ها:

برای شروع از طراحی منوی اصلی بازی شروع می کنیم . برای اینکار نام Scene  را که در پروژه ابتدایی ایجاد شده است از  HelloWorldScene  به MainMenuScene  تغیر می دهیم .همچین عنوان HelloWorldLayer  را به MainMenuLayer تغیر نام می دهیم . این تغیرات باید  در فایل app.js  اعمال شود .همچین به علت تغیر نام کلاس ها باید در فایل Main.js  هم شیء ساخته شده از کلاس MainMenuScene باشد پس تغیرات لازم را نیز در این فایل ایجاد می کنیم .

دلایلی وجود دارد که تمایل داشته باشیم از محیط توسعه ای به جز Cocos Code IDE استفاده کنیم از جمله ی این دلایل می توان به موارد زیر اشاره کرد :

  • آماده نبودن این محیط برای Linux
  • سرعت پایین 
  • کلاَ دل خوشی از Eclipse ندارید :)

به عنوان جایگزین  از WebStorm یا Netbeans و Brackets می توان استفاده کرد .که البته فکر می کنم بهترین گزینه همان WebStorm باشد.