Arvanttt

تند و سریع

Arvant

تند و سریع












۱۸ مطلب با موضوع «بازی سازی :: کارگاه عملی» ثبت شده است

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

  • یکی از راه ها استفاده از چهار ضلعی است که از آن می توان برای بیشتر بازی های معمولی استفاده کرد و روند خیلی ساده ای دارد .
  • راه دوم استفاده از انجین فیزیک است که برای اشیاء با پیچدگی های ظاهری زیاد و چند ظلعی های نامتوازن استفاده می شود .استفاده از این روش نیازمند آشنایی با انجین فیزیک و یک سری اصول فیزیک می باشد و پیچیدگی آن نسبت به روش اول بیشتر است .

در ادامه مبحث بازی پرنده شل و ول به مبحث مدیریت رویداد ها میرسیم .قبلاَ با استفاده از منو ها امکان استفاده از کلیک یا تاچ رو مشاهده کرده بودیم ولی در بعضی از حالت ها مثل کلیک بر روی یک Sprite یا یک Layer باید با استفاده از سیستم مدیریت رویداد انجین  رویداد های مانند کلیک موس ، تاپ در صفحه تاچ یا رویداد های صفحه کلید را مدیریت کنیم .

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

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

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

انیمیشن :

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

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

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

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

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

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

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

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

و....

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

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

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

برای شروع آخرین نسخه از Cocos Code IDE را بر اساس معماری پردازنده و سیستم عامل خودتون از اینجا دانلود کنید و بعد از آن اخرین نسخه از Cocos2d-x js را نیز از سایت اصلی بارگذاری کنید.
برای اجرا شدن Cocos Code IDE اطمینان حاصل کنید که روی سیستم شما java نصب شده باشد در صورتی که نصب نیست ابتداَ باید آن را نصب کنید و سپس اقدام به اجرای Cocos Code IDE نمایید از آنجا که سایت اصلی احتمالا ایران را تحریم کرده است می توانید از اینجا نصب به بارگذاری اقدام کنید .

بیایید با هم شروع کنیم به ساخت یک بازی ساده با  استفاده از cocos2d-x و از اونجایی که فکر میکنم یاد گیری انجین با انجام یک مثال راحت تر باشه قدم به قدم بازی flappy birds رو با هم  میسازیم.

از اونجایی که من احساس میکنم زبان  JavaScript  راحت تره و راحت تر باهامون کنار میاد پس با JavaScript  شروع میکنیم.در ضمن اگر پس فردا بازی ساز نشدید یه زبانی یاد گرفتید که کلی بازار کارش بهتر از Lua  و  C++   است.

برای شروع حتما سریعا شروع به یادگیری  JavaScript  کنید .

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

آخرین نسخه cocos2d-x js رو هم که چند وقته ریلیز شده از اینجا دانلود کنید .

آخرین نسخه Cocos IDE رو هم از اینجا دانلود کنید.

فعلا اینا رو داشته باشید تا با هم شروع کنیم .

سرفصل ها به مرور اضافه میشوند :

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

صنعت بازی‌های ویدئویی را می‌توان جوان‌ترین صنعت پولساز دنیا در نظر گرفت. در حالی که عمر این صنعت هنوز به 50 سال هم نرسیده، شاهد هستیم که میزان سرمایه‌گذاری و درآمد حاصل از آن به جایی رسیده که هر ازگاهی مقالاتی در مورد رقابت شانه به شانه‌ آن با هالیوود نگاشته شده و محل بحث بسیاری از صاحب نظران بوده است.