آموزش ساخت بازی Star Wars

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



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



اولین و ساده ترین نوع Sprite را Sprite0 در نظر میگیریم که بصورت زیر تعریف شده است :






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




Sprite بعدی Sprite1 است که تفاوت های آن با Sprite بازی Snake خصوصیت is_exist آن است که در صورت وجود شی یک و در صورت عدم وجود آن صفر میشود. همچنین دو متد create و destroy به آن اضافه شده که کار را بسیار آسان میکند. به کدهای موجود در این دو متد توجه کنید :





شی بعدی Sprite2 است. Sprite1 برای object های متحرک اما بی جان استفاده می شود. اما در شی Sprite2 یک خصوصیت health اضافه شده است که کار را بسیار ساده کرده و از تعریف متغیر های اضافی جلوگیری میکند. متد Step این شی همواره مقدار health را چک کرده و اگر از صفر کوچکتر بود شی را نابود (destroy) میکند. بنابراین شما در پروسه بازی تنها کافیست از مقدار health شی در شرایط خاص کم کنید و بقیه را به متدهای این شی بسپارید. 






همان طور که دیده اید برای کنترل بازی از موس استفاده شده است. برای قرار دادن Event های موس ابتدا یک تصویر با opacity صفر روی همه تصاویر قرار داده و رویداد ها را به آن اضافه میکنیم.





که در آن تابع upd_m به صورت زیر تعریف می شود :






متغیرهای m_x و m_y مقادیر کنونی مختصات mouse را در خود نگه می دارند. تابع mouse_d هم توابع مربوط به پرتاب تیر را فراخوانی می کند.




در ابتدای بازی یک تصویر با فرمت Gif به نام loader.gif  قرار داده شده است که تا زمانی که بازی به طور کامل لود نشده است نمایش داده می شود. برای اینکه پس از لود شدن کامل بازی آن را پنهان کنیم باید از رویداد onload مربوط به تگ body استفاده کنیم. و سپس در تابع فراخوانی شده توسط آن، تصویر را پنهان کنیم. تصویر loader.gif به صورت زیر است :









نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد