تبلیغات
پرسه در بازی سازی - آموزش مونوگیم - اولین پروژه
یکشنبه 28 شهریور 1395  02:57 ب.ظ
نوع مطلب: (مونوگیم ،آموزش ،) توسط: دانیال عبدالهی

در این آموزش می خواهم شما را با محیط  و با فایل Game.cs آشنا کنم. بر اساس آموزش های قبلی الان می توانید یک پروژه ویندوز ایجاد کنید. کار خود را از همان نقطه ادامه می دهیم.
فرض کنید یک پروژه به نام MyGame ایجاد کرده اید. در محیط ویژوال استدیو در نوار بالای صفحه زیر نوار منو یک دکمه سبزرنگ start  هست. این دکمه برای تست و رفع اشکال ( debug) برنامه است. روی آن کلیک کنید. یک پنجره باز خواهد شد که تمام صفحه آن با رنگ آبی خوشرنگی پر شده است. این پنجره بازی ماست. هر چند به نظر ثابت می رسد ولی در واقع حدود در هر ثانیه چندین بار در حال بروزرسانی است.( معمولا 60 بار در ثانیه).

اولین پروژه مونوگیم
از بازی خارج شوید. حالا به سراغ کدها می رویم. در پنل solution explorer  در گوشه صفحه روی فایل Game1.cs یک بار کلیک کنید. همان طور که قبلا گفتم این فایل یا کلاس اصلی بازی است و تمام متدهای عمده و حلقه بازی در این فایل قرار دارد. ممکن است کمی گیج کننده باشد. اگر بخواهم فایل Game1.cs  را بدون جزئیات و به طور کلی به شما نشان دهم مثل این خواهد شد:

namespace MyGame
{
      public class Game1 : Game
    {
        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;
        public Game1()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
        }
        protected override void Initialize()
        {
         }
        protected override void LoadContent()
        {
          }
        protected override void UnloadContent()
        {
           
        }
        protected override void Update(GameTime gameTime)
        {
       
        }
           protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);
            base.Draw(gameTime);
        }
    }
}

می بینید که به ترتیب، یک فضای نام(namespace) وجود دارد که هم نام با پروژه ماست (MyGame). در داخل آن یک کلاس به نام Game1 وجود دارد که همین کلاسی است که داخل آن هستیم. در داخل این کلاس ابتدا دو آبجکت و بعد از آن 6 متد وجود دارد. این کلاس ها و آبجکت ها به دلیل اهمیت و ضروری بودن به طور پبشفرض در کلاس بازی مونوگیم گنجانده شده اند.
آبجکت ها : 
  • GraphicsDeviceManager graphics : این آبجکت ارتباط بازی را با سخت افزار گرافیکی برقرار می کند.
  • SpriteBatch spriteBatch : آبجکتی که برای رسم یک یا چند تصویر در صحنه لازم است.
متدها : 
  • constructor method : متد سازنده کلاس که برای وجود آن هر کلاسی اجباری است.
  • Initialize  : در این متد معمولا سرویس ها را به کار میگیرید، منابع غیر گرافیکی خود را آماده می کنید و ...
  • LoadContent : در این متد تمام محتوای بازی را از جمله تصاویر، مدل ها و ... لود می کنیم.
  • UnloadContent : تمام محتوا را بعد از اتمام بازی آنلود میکنیم و به با این کار حافظه ای که اشغال شده بود ازاد خواهد شد.
  • Update  : در این متد باید دنیای بازی را بروزرسانی کنید، ورودی کاربر را بگیرید، صدا را پخش کنید، برخوردها را بررسی کنید و ...
  • Draw  : در این متد صحنه را بر اساس بروزرسانی در متد Update و تغییرات اخیر رسم میکنیم.
حالا دیگر یک آشنایی کلی با محتویات این کلاس دارید. به سراغ متد Draw  می رویم :

 protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);
            // TODO: Add your drawing code here
            base.Draw(gameTime);
        }

در خط :

 GraphicsDevice.Clear(Color.CornflowerBlue);

از سخت افزار گرافیکی خواسته شده که صفحه را با رنگ آبی پرکند یا clear  کند. حال شما cornFlowerBlue  را پاک کنید  و بعد از کلمه Color  و نقطه کلید کنترل را بگیرید و space را بزنید. لیستی از رنگ ها را خواهید دید. Tomato را انتخاب کنید.
نتیحه این خواهد شد:

 GraphicsDevice.Clear(Color.Tomato);

حالا یک بار دیگر دکمه استارت را بزنید تا بازی را تست کنیم. می بینید که رنگ تصویر به رنگ گوجه ای تغییر کرد.( احتمالا به خودتان می گویید " بالاخره یک اتفاقی افتاد ". از این به بعد مطالب عملی بیشتری خواهیم داشت.)
در این مطلب با کلیات ساختار کلاس Game و متغیرها و متدهای آن آشنا شدیم و اولین تغییرات را در بازی ایجاد کردیم. در جلسه بعد با ابزار Monogame pipeline آشنا می شویم.


نظرات()   
   
ًA
چهارشنبه 31 شهریور 1395 01:45 ب.ظ
دستتون درد نکنه ...
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر
نظرات پس از تایید نشان داده خواهند شد.
آخرین پست ها

کانال آموزش طراحی بازی..........چهارشنبه 17 آذر 1395

نسخه بتا یونیتی ۵.۵..........پنجشنبه 11 آذر 1395

هیولا دات کام، بستر توزیع بازی های کامپیوتری به صورت آنلاین..........پنجشنبه 27 آبان 1395

ساخت فایل exe از فایل سی شارپ بدون ویژوال استدیو..........چهارشنبه 12 آبان 1395

آموزش مونوگیم - محدود کردن آبجکت به ابعاد صحنه..........یکشنبه 9 آبان 1395

توپ قرمز مسطح یا Flat Red Ball- انجین بازی دوبعدی به زبان سی شارپ..........پنجشنبه 6 آبان 1395

طراحان مطرح دنیای بازی - ریچارد گریوت..........شنبه 1 آبان 1395

طراحان مطرح دنیای بازی - گری گایگکس Gary Gygax..........چهارشنبه 28 مهر 1395

بهبود کیفیت آموزش ها با GifCam..........دوشنبه 26 مهر 1395

طراحان مطرح دنیای بازی - پیتر مولینیو..........جمعه 23 مهر 1395

طراحان مطرح دنیای بازی - ریچارد گارفیلد..........پنجشنبه 22 مهر 1395

طراحان مطرح دنیای بازی - وارن اسپکتور..........چهارشنبه 21 مهر 1395

طراحان مطرح دنیای بازی - سید میر..........سه شنبه 20 مهر 1395

طراحان مطرح دنیای بازی - ویل رایت..........دوشنبه 19 مهر 1395

طراحان مطرح دنیای بازی - شیگرو میاماتو..........یکشنبه 18 مهر 1395

همه پستها