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

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

برای شروع 2 تا کامپوننت اضافه میکنیم 
ارث بری این کامپوننت از picturebox
خواهد بود

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BirdHinter.Code
{
    public partial class BirdBox : PictureBox
    {
        public string Status { get; set; }
        public string Direction { get; set; }

        public BirdBox()
        {
            Status = "Alive";
            Direction = "Forward";
        }
    }
}


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

public partial class BirdTimer : Timer
    {
        public BirdBox BirdBox { get; set; }
    }

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


 public enum GameStatus
        {
            Continue = 1,
            Pause = 2
        }

        public enum Guns
        {
            Shotgun = 1,
            M1Grand = 2,
            Glock = 3
        }

        public enum Birds
        {
            Parrot = 1,
            Stork = 2,
            Crow = 3
        }
 static Random RandomTicker = new Random();

        public static int GetRandomInterval()
        {
            return RandomTicker.Next(5, 100);
        }

        public static int GetRandomNumber()
        {
            return RandomTicker.Next(10, 25);
        }


        public static int GetLimitedRandomNumber(int Min, int Max)
        {
            return RandomTicker.Next(Min, Max);
        }

این مقادیر شمارشی و اسامی اختیاری هستن
برای فرخوانی در زمان درسترسی

نامگذاری سلاح که در این بازی از 3 نوع سلام استفاده کردم ولی برای همشون یه نوع صدا میزارم فعلا
نوع سومbirds
برای نامگذاری پرندگان بازی هست


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





آموزش مورد نظر در آپارات د ر4 قسمت      قسمت اول                 قسمت دوم            قسمت سوم          قسمت آخر