الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تعلم أساسيات Xna مع التعامل مع الصوت وصولا إلى المحرك الفيزيائي Jiglibx

بدأه crazy Programm2007er في 21 أغسطس 2008 · 12 رد · 3,385 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

:D السلام عليكم

سأقوم بشرح أساسيات عن المحرك XNA على شكل دروس

هذا أفضل محرك شاهدته من حيث الرسومات والإمكانيات كما يمكنك به صناعة ألعاب تعمل على الإكس بوكس 360 وZune

-----------------------------------------------------------------------------------

طبعا اللغة المستخدمه هي السي شارب والفيجول بيسكيون سيكون لهم شرح :happy:

أولا درس اليوم سيتكلم عن تركيب الـXNA

لمن لديه Microsoft Visual Studio 2005

Microsoft XNA Game Studio 2.0

لمن لديه Microsoft Visual Studio 2008

Microsoft XNA Game Studio 3.0

------------------------------------------------------------------------------------------

تقوم بتحميل الـSDK الخاصة بإصدار الفيجول ستيديو لديك أعلاه

وتركبها على كمبيوترك ثم تقوم بفتح الفيجول الستيديو لديك ويجب أن يظهر لك مثل ما في الصوره

post-114540-1219328695_thumb.jpg

:blink: إذا لم يظهر هذا يعني أن هناك خطأ حصل

:wink: سأبدأ في الدروس الباقية في XNAغدا

ملاحظة:المحرك سهل جدا ولا داعي من الخوف أي سؤال في الXNA أنا جاهز

تم تعديل هذه المشاركة بواسطة crazy Programm2007er في 21 أغسطس 2008 في 17:34

#2

وعليكم السلام ورحمة الله وبركاته

:)

موفق ان شاء الله أخي العزيز

على فكرة مطور المحرك الفيزيائي Jiglibx هو نفسه صاحب المكتبة IrrlichtFramework :wink:

متابعون معك

تم تعديل هذه المشاركة بواسطة DreamNet في 22 أغسطس 2008 في 08:16

#3
DreamNet كتب:
وعليكم السلام ورحمة الله وبركاته

:)

موفق ان شاء الله أخي العزيز

على فكرة مطور المحرك الفيزيائي Jiglibx هو نفسه صاحب المكتبة IrrlichtFramework :wink:

متابعون معك

شكرا على الرد والمعلومة المفيدة :lol:

----------------------------------------------------------------

السلام عليكم درس اليوم سيتكلم عن رسم صورة ببعدين

لمن لم يحمل الـSDK الخاصة بالـXNA فيمكنه الرجوع إلى بداية الموضوع

نقوم بإنشاء مشروع جديد من النوع Windows Game

يوجد مجلد قد أضيف تلقائيا مع المشروع واسمه Content هذا المجلد سيتم تخزين جميع ملفات اللعبة فيه

نقوم بفتح الملف Game1.cs

وسنرى عدة دوال :

Initialize:تقوم هذه الدالة فعل الكود الذي ستكتبه داخلة عندما يتم تشغيل اللعبة(من اسمه واضح ).

LoadContent:تقوم هذه الدالة بتحميل جميع ملفات اللعبة من موديلات وشخصيات ومواد وإكساء إلخ...

UnloadContent:عكس الدالة السابقة تلغي تحميل الملفات.

Update:عندما يتم تحديث اللعبة سيتم إستدعاء هذه الدالة وتسمى أيضا بمنطق اللعبة وحلقة اللعبة.

Draw:تقوم هذه الدالة بالرسم.

--------------------------------------------------------------------------------

أولا:

نقوم بنسخ الصورة المراد رسمها إلى المجلد Content وذلك

بعدة طرق منها الموجود في الصورة

post-114540-1219394651_thumb.jpg

وقد أضفت صورة التي سنستخدمها للدرس وهي موجوده في المرفقات

نقوم بتعريف من النوع Texture2D في أي منطقة داخل الـClass ولا يكون داخل أي دالة

Texture2D tex;

وأصحاب الفيجول بيسك نكتب نوع المتغير أولا ثم إسم المتغير ثم ننهية بفاصلة منقوطة ';'

ثم نذهب إلى الدالة LoadContent

ونكتب داخلها

	tex = this.Content.Load<Texture2D>("test");

Content.Load تعني قم بتحميل الملف

<Texture2D> وهذه تعني إخبار الدالة بنوع الملف المستخدم هل هو شخصية صورة

قد يقول البعض لماذا كتبنا إسم الملف بدون كتابة هيئة(.jpg) قد يحدث خطأ لا تقلق

يقوم الـXNA بالمهمه بدلا منك

إنتهينا من تحميل الصورة باقي الرسم

إذهب إلى الدالة draw الخاصة بالرسم وأكتب

spriteBatch.Begin();
spriteBatch.Draw(tex, new Vector2(10, 10), Color.White);
spriteBatch.End();

أول سطر وأخر سطر هي مهمه للغاية

ثاني سطر يعني أرسم

tex هي الصورة التي صرحناها

new Vector2(10, 10):تعني مكان الرسم

Color.White: إظهار ألوان الصورة بدون تعديل

صوره عن النتيجة

post-114540-1219395925_thumb.jpg

post-114540-1219394813_thumb.jpg

#4

السلام عليكم

اسلوب مبسط و شرح ممتع

ننتظر بقية الدروس

بالنسبة لي عملت على XNA فترة و وجدته سهل و بسيط

و مع الدعم الذي اقرأه في موقع XNA اجد له مستقبل واعد

#5
الكون كتب:
السلام عليكم

اسلوب مبسط و شرح ممتع

ننتظر بقية الدروس

بالنسبة لي عملت على XNA فترة و وجدته سهل و بسيط

و مع الدعم الذي اقرأه في موقع XNA اجد له مستقبل واعد

شكرا على الرد

وأرجو أن أجد تفاعل من باقي الأعضاء

تم تعديل هذه المشاركة بواسطة crazy Programm2007er في 23 أغسطس 2008 في 11:28

#6

رسم مجسم على الشاشة

تقوم بإنشاء مشروع جديد من النوع Windows Game

وتضيف ملف المجسم الذي يوجد في الملف المضغوط الموجود في المرفقات

وتذهب إلى أي منطقة داخل الـClass ويجب أن لا يكون داخل أي دالة وأكتب

  Model m;

نقوم بتصريح متغير جديد من النوع Model وتعني مجسم

وتذهب إلى الدالة LoadContent

وتكتب داخلها

   m = this.Content.Load<Model>("teapot");

ثم تذهب إلى دالة الرسم(Draw) وتكتب

	Matrix[] tr = new Matrix[m.Bones.Count];
			m.CopyAbsoluteBoneTransformsTo(tr);
			float aspectRatio = (float)graphics.GraphicsDevice.Viewport.Width /
								(float)graphics.GraphicsDevice.Viewport.Height;
			foreach (ModelMesh  mesh in m.Meshes )
			{
				foreach (BasicEffect effect in mesh.Effects )
				{
					effect.EnableDefaultLighting();
					effect.PreferPerPixelLighting = true;

				   effect.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, aspectRatio, 1, 999999999999);
					effect.View = Matrix.CreateLookAt(new Vector3(-70, 70, -70), Vector3.Zero, new Vector3(0,1,0));
					effect.World =tr[mesh.ParentBone.Index];
				}

			  mesh.Draw();
			}

:blush: ثم شغل F5 وتمتع بإبريق الشاي في الشاشة

من لم يستطع فهم الدرس فقد أرفقت مشروع الدرس في المرفقات كي يحلل المشروع ويفهم :wink:

بالمناسبة المشروع لفيجول سي شارب 2008

أرجو أن كان الدرس سهل للجميع وأي سؤال أن جاهز

teapot.rar

WindowsGame9.rar

تم تعديل هذه المشاركة بواسطة crazy Programm2007er في 23 أغسطس 2008 في 20:17

#7

لماذا اخى الكريم توقفت عن تكلمة الدروس ؟؟؟

يارب يكون المانع خير :) ؟؟؟

#8

بصراحة لم أجد تفاعل يساعد في الإستمرار كما أنني قد تعلمت أشياء متقدمه في الرسوميات والدايركت إكس لذلك تركت الـXNA

#9

للاسف فعلا شئ محزن انك لا تجد اى تفاعل :(

---------------------------------------------

ولكن لدى سؤال هل تعلمت الدايركت اكس على السى شارب ولا على السى بلس ؟؟

#10

أنا أستخدم الدايركت إكس مع c++ وأيضا أتعلم المحرك الفيزيائي PhysX وقريبا سأضع درس لكيفية إستخدامه في المنتدى

#11

السلام عليكم

أريد أن أسئلكم بماذا تنصحوني أن أتعلم للرسم في c++ للرسم الثنائي هل أتعلم SDL أو هناك ما هو أحسن

أو أتعلم DIRECTX أو OPENGL أفضل؟

#12

بصارحة أفضل شي B) سي++ معى الدايركت إكس صدقني ستكوت سهله للغاية علما أنا من أصحاب الفيجول بيسك B)

#13

قررت تعلم الدايركت إكس ولكن سمعت أنه يعمل فقط على الويندوس هذا ماجعلني أتردد بعض الشيء

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…