هدف کلی:
آشنایی با پیچیدگی های نوشتن یک بازی
سرفصل های تئوری:
1- ساخت منوی بازی
مقدمه:
در این سری جلسات قصد داریم برنامه ی یک بازی که احتمالاً آن را زیاد دیده اید، با هم بنویسیم. برای نوشتن این بازی از بسیاری از کنترل ها و امکانات زبان استفاده خواهیم کرد بنابر این سعی کنید هر مرحله را با دقت یاد بگیرید و جلو بروید. برای شروع یک پروژه از جنس Windows Forms Application با نام PackMan ایجاد کنید.
توصیه:
اگر تاکنون این بازی را ندیده اید، قبل از هر کار بروید قدری آن را ببینید و با آن بازی کنید، می توانید بازی را از اینجا به صورت آنلاین مشاهده و بازی کنید. هر وقت می خواهید چیزی درست کنید، اول خوب آن را بشناسید.
منوی شروع:
معمولا اکثر بازی ها یک منوی شروع دارند که به کاربر این امکان را می دهد که بتواند در مورد بازی اطلاعاتی مانند رکوردها و یا سازندگان بازی کسب کند، مواردی مانند میزان صدا، حالت صفحه (full screen) و یا درجه سختی بازی را انتخاب کند و یا با انتخاب گزینه ای مانند Start و یا Play بازی را شروع کند، مثلاً می توانید منوی ابتدای بازی خود را به صورت زیر طراحی کنید:
برای زیباتر شدن منو، فونت را مانند زیر فونت Ravie قرار دهید. و می توانید یک Label هم برای نوشتن نام بازی مانند شکل بالا قرار دهید. همچنین می توانید با تغییر ویژگی در منوی propeties تنظیم کنید که شکل ماوس وقتی روی دکمه ها می آید تغییر بکند:
هر کدام از این دکمه ها عملکردی متناسب با نام خود دارند و کم کم توابع کلیک آنها را کامل خواهیم کرد:
- Free Game
برای انتخاب آزادانه ی مرحله ی بازی است.
- Play Level Game
برای انجام بازی طبق روال آسان به سخت است.
- Options
برای تنظیم مواردی مانند صدای بازی و نیز حالت صفحه ی نمایش است. (اینکه تمام صفحه باشد یا نباشد)
- Load
برای بازیابی بازی از جای قبلی که ذخیره کردیم است (در بخش خودش مفصل توضیح خواهیم داد)
- Exit
بستن برنامه.
Free Game:
می خواهیم، هنگامی که کاربر این دکمه را زد، بتواند بین سطوح مختلف بازی pacMan که در میزان سختی متفاوت هستند، یکی را انتخاب نماید، می توانید این سطح ها را هر طور که دوست دارید طراحی نمایید، ما فرض کرده ایم که تعداد دشمنان pacMan و نیز تعداد دانه هایی که باید بخورد با جلو رفتن مرحله زیاد می شود و نقشه ی بازی هم پیچیده تر خواهد شد، نقشه هایی مانند زیر برای سطوح مختلف طراحی کنید:
مرحله اول:
مرحله دوم:
در طراحی نقشه ها دقت داشته باشید که موانع را می توانید با ابزارهای گرافیکی روی صفحه بکشید تا با لود کردن عکس پس زمینه یک جا لود شوند، اما خود pacMan و دشمنان و دانه ها را باید در زمان اجرا در مکان های مختلف رسم کنیم، پس آنها را روی زمینه نکشید.
حال با نوشتن تابع کلیک قرار است کاربر بتواند بین این مراحل یکی را انتخاب نماید، برای این کار لازم است ما یک Form بسازیم:
که در آن کاربر بتواند با نوشتن شماره مرحله (استفاده از NumericUpDown) و یا انتخاب آن (RadioBottun) مرحله و نقشه ی مورد نظر خود را انتخاب نماید، در نتیجه فرم می َتواند به یکی از دو صورت زیر باشد:
سپس درون تابع مربوط به رخداد کلید مربوطه کدی مانند زیر بنویسید:
راهنمایی (نحوه ی ایجاد یک فرم جدید):
ما برای ایجاد یک فرم اضافی برروی پروژه خود به پنجره SolutionExplorer رفته بر روی آن رایت کلیک نمایید سپس گزینه add را انتخاب کنید و با انتخاب فرم و قرار دادن نام برای فرم خود ن را ایجاد نمایید. با انتخاب فرم بدین صورت فرمی به پروژه شما اضافه می گردد که می توانید با نوشتن دستورات بالا در یک رویداد آن فرم را فرا خوانی نمایید.
ادامه:
سپس لازم است وقتی کاربر مرحله ی بازی را انتخاب کرد ما زمینه و امتیازهای متناسب با آن مرحله به او نمایش دهیم، در نتیجه باید فرم اصلی برنامه از اینکه کاربر در FreeLevelForm چه انتخابی انجام داده است آگاه باشد، برای این کار می توان از یک متغیر integer استفاده نمود به این صورت که اگر مقدار صفر در آن باشد یعنی کاربر گزینه ی برگشت به منوی اصلی را انتخاب کرده است و اگر یک یا دو باشد به ترتیب مرحله ی بازی خواهد بود.
سپس برای اینکه در فرم اصلی بتوانیم از وضعیت این متغیر عددی با خبر شویم یک تابع getStatuse به صورت زیر در FreeLevelForm تعریف می کنیم:
و در فرم اصلی با چک کردن آن مرحله را تعیین می کنیم:
همان طور که در کد هم مشاهده می کنید بعد از انتخاب گزینه ی play توسط کاربر، سایر دکمه های صفحه ی اصلی محو می شوند و تصویر متناسب نیز لود می شود و آماده ی شروع بازی می شویم.
بخش پژوهش های دانش آموزی تبیان، تهیه: محسن نصرتی
تنظیم: نسرین صادقی
تبیان...
ما را در سایت تبیان دنبال می کنید
برچسب : نویسنده : فرومی tebyan بازدید : 219 تاريخ : شنبه 5 تير 1395 ساعت: 13:20