الدرس الثالث :
مرحبا أخواني في هذا الدرس نتعلم بالتفصيل أكثر مما سبق لتعميق الفكرة أكثر وأوضح ....
بسم الله نبدأ /
عند كتابة الكلاس للعبة يجب ان تحتوي على جملة namespace على اسم اللعبة , يمكن ان نعرف المتغيرات الذي نريد ان تكون مرئية امامك في الكود الحالي في بداية الكلاس توجد مولدات للكلاس بشكل آلي باسم procesdures الذي تكون داخل كلاس اللعبة وهي Game1.cs ويعرف بـــ:
وهذا procedures سنتفذ كل الجمل به وعند البدء ترى يتم تكوين جملتين متولدتين من قبل #C
وفي السطر الأول ترى كلمة DEVICE MANAGER تسند الى المتغير من نوع GraphicsDeviceManager وهو أصلاً كلاس مبرمج من قبل #C وهو يقوم بعمل تحديد بأبعاد الشاشة وغيرها .
اما بالنسبة content manager وهو لغرض الترتيب بين العناصر بمعنى مختصر اذا كنت تحميل صورة معينة داخل اللعبة وهذا الأمر ستقوم بأستدعاء ملف الصورة من خلال هذا الكود ونفس الشئ لكل الصور والمجسمات والأصوات تقوم بتحميلها داخل solution explorer ويقوم XNA بدمجها في المشروع وأعطائها كود معين ......
والأن الى جملة Initialize وهي ان تقوم بشحن مكونات اللعبة او أعطائها قيمة أولية
protected override void Initialize()
{
// TODO: Add your initialization logic here
base.Initialize();
}
مرحبا أخواني في هذا الدرس نتعلم بالتفصيل أكثر مما سبق لتعميق الفكرة أكثر وأوضح ....
بسم الله نبدأ /
عند كتابة الكلاس للعبة يجب ان تحتوي على جملة namespace على اسم اللعبة , يمكن ان نعرف المتغيرات الذي نريد ان تكون مرئية امامك في الكود الحالي في بداية الكلاس توجد مولدات للكلاس بشكل آلي باسم procesdures الذي تكون داخل كلاس اللعبة وهي Game1.cs ويعرف بـــ:
public class Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
ContentManager content ;
private SpriteBatch spriteBatch;
private Texture2D tiledSprite;
{
GraphicsDeviceManager graphics;
ContentManager content ;
private SpriteBatch spriteBatch;
private Texture2D tiledSprite;
مثال على ذلك اذا كنت تريد تحميل صورة معينة ستحتاج كائنين معرفين ضمن xna الأول Texture2D
سنستعمله لكي نحمل الصورة الذي تحوي Sprites الكائن الثاني هو spritebatch الذي يتحكم بعرض الـsprites للصور , ثم نبدء بالتعريف الكلاس في الجزء المخصص للتعريفات الكائن والمتغير
بعد تعريف الكلاس يتم حجز ذاكرة له او الأعلان عنه في الأمر :
سيتم رسم الصورة في draw المخصص لذلك
سنستعمله لكي نحمل الصورة الذي تحوي Sprites الكائن الثاني هو spritebatch الذي يتحكم بعرض الـsprites للصور , ثم نبدء بالتعريف الكلاس في الجزء المخصص للتعريفات الكائن والمتغير
بعد تعريف الكلاس يتم حجز ذاكرة له او الأعلان عنه في الأمر :
protected override void Initialize()
{
// TODO: Add your initialization logic here
spriteBatch = new SpriteBatch(graphics.GraphicsDevice);
والسطر اعلاه سيؤدي الى تنفيذ Constructor للكلاس spritebatch ليجعل المتغير spritebatch مسؤولاً عن عرض السبريتات {
// TODO: Add your initialization logic here
spriteBatch = new SpriteBatch(graphics.GraphicsDevice);
سيتم رسم الصورة في draw المخصص لذلك
protected override void Draw(GameTime gameTime)
{
graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
// TODO: Add your drawing code here
spriteBatch.Begin();
spriteBatch.Draw(tiledSprite, new Rectangle(0, 0, 512,512),
Color.White);
spriteBatch.End();
base.Draw(gameTime);
}
بعد ذلك يتم تكوين كلاس للعبة وهي instance {
graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
// TODO: Add your drawing code here
spriteBatch.Begin();
spriteBatch.Draw(tiledSprite, new Rectangle(0, 0, 512,512),
Color.White);
spriteBatch.End();
base.Draw(gameTime);
}
صيغة الأمر draw لـ spritebatch يأخذ الأمر كوسيط أول , و الأمر rectangle كوسيط ثاني حيث يمثل المكان الذي للصور ان تظهر به وهو الأحداثي 0,0 والطول والعرض الذي نريد للصورة ان تظهر كاملة بالأحداثي 512,512 اعلاه
وهذا مثال مبسط وان شاء الله نشرح المزيد منه في الدروس القادمة ...........
وهذا مثال مبسط وان شاء الله نشرح المزيد منه في الدروس القادمة ...........
public Game1()
{
graphics = new GraphicsDeviceManager(this);
content = new ContentManager(Services);
}
{
graphics = new GraphicsDeviceManager(this);
content = new ContentManager(Services);
}
وهذا procedures سنتفذ كل الجمل به وعند البدء ترى يتم تكوين جملتين متولدتين من قبل #C
وفي السطر الأول ترى كلمة DEVICE MANAGER تسند الى المتغير من نوع GraphicsDeviceManager وهو أصلاً كلاس مبرمج من قبل #C وهو يقوم بعمل تحديد بأبعاد الشاشة وغيرها .
اما بالنسبة content manager وهو لغرض الترتيب بين العناصر بمعنى مختصر اذا كنت تحميل صورة معينة داخل اللعبة وهذا الأمر ستقوم بأستدعاء ملف الصورة من خلال هذا الكود ونفس الشئ لكل الصور والمجسمات والأصوات تقوم بتحميلها داخل solution explorer ويقوم XNA بدمجها في المشروع وأعطائها كود معين ......
والأن الى جملة Initialize وهي ان تقوم بشحن مكونات اللعبة او أعطائها قيمة أولية
protected override void Initialize()
{
// TODO: Add your initialization logic here
base.Initialize();
}
والآن الى الأمر LoadContent وهو يقوم بتحميل الصور والمجسمات والأصوات وغيرها
والأمر الأخر هو unloadContent وهو يقوم بتفريغ الذاكرة من مكونات اللعبة الصور والأصوات والمجسمات
الأمر Draw وهو يتم رسم العناصر المطلوبة من تأثيرات ومجسمات وغيرها
والأمر graphics.GraphicsDevice.Clear(Color.CornflowerBlue يوجه أمر معين الى كرت الشاشة لمسح الشاشة باللون الأزرق ويعطيك #C اوامر جاهزة للألوان المدموجة معه وهو color وهي خاصية auto Complete ,وهي خاصية رائعة جداً تساعدك على التذكير الألى وهي تفيد المبرمجين بشكل خاص لتنفيذ أوامرهم بسرعة بدون تذكر من المبرمج .....
protected override void LoadContent()
{
// TODO: Load any content
}
{
// TODO: Load any content
}
والأمر الأخر هو unloadContent وهو يقوم بتفريغ الذاكرة من مكونات اللعبة الصور والأصوات والمجسمات
protected override void UnloadContent()
{
// TODO: Unload any content
content.Unload();
}
{
// TODO: Unload any content
content.Unload();
}
الأمر update gametime وهو ادخال قيم متغيرات معينة مثل اعطاء المجسم احداثيات س وص x,y وفيه وضع التحكمات للماوس والكيبورد والجويستيك
protected override void Update(GameTime gameTime)
{
// هنا يتم الخروج من اللعبة اذا تريد ذلك
// Allows the game to exit
if (GamePad.GetState(PlayerIndex.One).Buttons.Back ==
ButtonState.Pressed)
this.Exit();
// هنا يتم ادخال التحكمات
// TODO: Add your update logic here
base.Update(gameTime);
}
{
// هنا يتم الخروج من اللعبة اذا تريد ذلك
// Allows the game to exit
if (GamePad.GetState(PlayerIndex.One).Buttons.Back ==
ButtonState.Pressed)
this.Exit();
// هنا يتم ادخال التحكمات
// TODO: Add your update logic here
base.Update(gameTime);
}
الأمر Draw وهو يتم رسم العناصر المطلوبة من تأثيرات ومجسمات وغيرها
والأمر graphics.GraphicsDevice.Clear(Color.CornflowerBlue يوجه أمر معين الى كرت الشاشة لمسح الشاشة باللون الأزرق ويعطيك #C اوامر جاهزة للألوان المدموجة معه وهو color وهي خاصية auto Complete ,وهي خاصية رائعة جداً تساعدك على التذكير الألى وهي تفيد المبرمجين بشكل خاص لتنفيذ أوامرهم بسرعة بدون تذكر من المبرمج .....
protected override void Draw(GameTime gameTime)
{
graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
// هنا يتم اضافة الكود
// TODO: Add your drawing code here
base.Draw(gameTime);
}
{
graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
// هنا يتم اضافة الكود
// TODO: Add your drawing code here
base.Draw(gameTime);
}
تعليق