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

[جديد] الدرس الأول من سلسلة دروس تعلم ال Xna

بدأه *خلدون خالد* في 26 فبراير 2009 · 16 رد · 11,110 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

الحمد لله و الصلاة و السلام على رسول الله..

اما بعد ..

لقد قررت أن اتعلم الXna -_-

لمن لا يعرف ال Xna هي مكتبة لبرمجة الألعاب مقدمة من مايكروسوفت و مدعومة بشكل كامل بال .net Framework

سوف أحاول بعون الله تعالى أن أقوم بترجمة سلسلة الدروس التعليمية بإسم 2D Xna Tutorial Using C# ,"تعلم 2D Xna بإستخدام C#".

رابط الدروس الأصلية http://www.riemers.net/eng/Tutorials/XNA/Csharp/series2d.php

مؤلف السلسلة يدعى Riemer Grootjans http://www.riemers.netو هو حاصل على شهادة

“Microsoft MVP Award 2007 – 2008 DirectX - XNA”

كما أنه مؤلف كتاب XNA 2.0 Game Programming Recipes

بسم الله نبدأ السلسلة التعليمية.

الهدف من هذه السلسلة هي تزويد المتعلم لل Xna بالمعلومات الأساسية التي تلزمه للوصول إلى مرحلة القدرة على بناء أي لعبة مبنية على البعدين “2D”.

من أجل الوصول إلى هذا الهدف سوف يتم على مدى السلسة تطوير لعبة “Shooters” على مدى اللعبة, مما يعني أنك في النهاية سوف تصل إلى مرحلة إتقان ال Xna + القدرة على تطوير الألعاب بشكل جيد جدا إن شاء الله.

لن يتم التطرق إلى مفاهم الألعاب بشكل نظري و لن يتم الحديث عن الجوانب النظرية المتعلقه بمكتبة ال Xna , طبعا هذا لا يعني أن هذه السلسلة غير مخصصة للمبتدئين , لإنها مخصصة للمبتدئين فعلا, الذين انتمي إليهم بطبيعة الحال (المترجم:) ).

سأقوم بسرد بعض من المفاهيم التي سوف تتعلمها بإذن الله في نهاية هذه السلسلة من الدروس:

• تنزيل و تثبيت ال Xna و البدء بمشروعك الأول

• إضهار وتصيير “Render”صور ثنائية البعد على الشاشة

• تحجيم و تدوير و تغيير مواضع الصور الثنائية البعد.

• مدخلات لوحة المفاتيح

• تشغيل مؤثرات صوتيه في ال Xna

• معالجة الخامات Per-Pixel

• إنشاء التضاريس العشوائية

• مزج ألفا “Alpha Blending”

• إكتشاف التصادمات (اكثر المواضيع صعوبة التي سوف تناقش هنا هي Per-Pixel Transformed)

• إضافة إلى شرح كامل لمحرك الجزيئات ثنائي الأبعاد “2D Particle Engine” من أجل الإنفجارات.

صور من اللعبة التي سوف يتم تطويرها بإذن الله.

post-133895-1235663297_thumb.jpg post-133895-1235663326_thumb.jpg

-من المترجم-

سوف أحاول ان اترجم المصطلحات القابلة للترجمة حسب الأولويات التاليه:

- المصطلحات التي تم ترجمتها في موضوع "دعوة عامة لتوحيد المصطلحات" /index.php?showtopic=149732

- سأحاول استخدام الترجمات العامة للمصطلحات (الترجمات الأكثر إنتشارا)

- إضافة إلى كل ذلك سوف اقوم بوضع المصطلح الإنجليزي إلى جانب العربي في علامتي تنصيص ""

ملاحظات:

*سأقوم بإرفاق الملفات الآزمة لتنفيذ كل درس إضافة إلى الروابط الأصلية التي سوف تظهر في الدرس, كما سأقوم بإرفاق الدرس في ملف بصيغة PDF.

*بالنسبة لمناقشة الدروس , فأي شخص لديه اي سؤال أو مشكلة سأحاول بالتعاون مع الأخوة ان نجيبه على تساؤلاته , طبعا قلت سأحاول لأني مبتدأ و قد بدأت لتوي بدراستها.

*سأقوم بطرح درس في كل يوم أو يومين حسب الوقت. (حتى الآن ترجمت 3 دروس و إن شاء الله مستمر في الباقي)

*طبعا واضح ان الشرح سوف يتم بإستخدام لغة الس C# , و من السهل على أصحاب الفيجوال بيسك (أنا منهم) التحويل بين اللغتين.

*أرجو أن اجد تفاعلا :)

التوكل على الله ...

 

الدرس الأول

أهلا بكم في الدرس الأول من سلسلة دروس تعلم ال Xna , هذه السلسلة من الدروس تستهدف الأشخاص الذين لم يسبق لهم اي معرفة في ال Xna, و يرغبون بالحصول على نتائج بأسرع وقت ممكن.

ال Xna هي "بيئة" برمجية , تم إصدارها في ديسمبر 2006 بواسطة مايكروسوفت , هذه التقنية مبنية "حول" على ال DirectX , بحيث تسهل برمجة الألعاب بعدة طرق.

المتطلبات البرمجية (مجانيه) :

البرمجيات الازمة لكي تبدأ كتابة كود ال Xna هي مجانية تماما , و بإمكانك تنزيلها:

• Microsoft XNA Game Studio 2.0, the programming environment (free) (Link)

• Microsoft Visual Studio C# Express (free) (Link). XNA Game Studio 2.0 will also work with the full version of Visual Studio 2005

.

تأكد من إختيارك لنسخة ال C# المعلمة بالأخضر.

إبدأ مشروع Xna جديد:

بإستخدام هذه البرمجيات التي قمت بتنزيلها , تستطيع أن تبدأ بكتابة برامجك في ال Xna ,

تستطيع بدء ال Xna Game Studio 2.0 , الموجوده في قائمة إبدأ , وبعدها إختر قائمة ملف => و اختر مشروع جديد (New Project) .

إذا كنت تملك نسخه كاملة الفيجوال ستديو , بإمكانك فتح مشروع بالطريقه العاديه و إختيار Xna Game Studio 2.0 من قائمة المشاريع على اليسار. نحتاج نوع مشروع Windows Game (2.0) .

نشر اللعبة إلى ال Xbox360 سوف يتم مناقشته فيما بعد. الآن أكتب اسم اللعبة في خانة إسم المشروع انا اخترت “XNAtutorial” بعد ذلك إضغط موافق OK !

هكذا تم إنشاء مشروع Xna . في متصفح المشروع "Solution Explorer" على يمين الشاشة تستطيع ان ترى أن المشروع يحتوي على ملفين للكود و هما “Game1.CS” و “Program.CS” تستطيع مشاهدة ما يحتويانه من كود عن طريق الضغط على بالزر الأيمن للماوس و إختيار “View Code” . عندما تريد ان تشغل المشروع سوف يبدأ البرنامج التنفيذ من ملف ال “Program.CS” , في الدالة "Function" الرئيسية “Main” . ببساطة هذه الدالة تقوم بإستدعاء الكود الموجود في ملف ال “Game1.CS” . بكل الأحوال لا يلزمنا تغيير اي شيئ في ملف ال “Program.CS” .

 

تركيبة البرنامج :

افتح ملف ال “Game1.CS” . ستجد انه يحتوي على العديد من الملاحظات “Comments” باللون اأخضر , (بإمكانك حذفها), بإمكاننا الآن إستكشاف تركيبة برنامج لعبة ال Xna .

  • الدالة المشيدة "Constructor Function" المسماه “Game1()” و التي يتم إستدعائها عند بدء التشغيل. بشكل عام تستعمل هذه الدالة لتحميل بعض المتغيرات الازمة بواسطة إطار عمل ال Xna .
  • الدالة الإستهلالية “Initialize()” و التي يتم إستدعائها ايضا عند بدء تشغيل اللعبة. هذه هي الدالة التي تلزم لنضع فيها الكود الخاص بالتجهيز للعبة "Initialization" .
  • الدالة “LoadContent()” , و التي تستخدم لإستيراد الموارد الازمه للعبة (مثل الصور و العناصر و الأصوات) إضافة إلى البيانات المتعلقة ببطاقة الرسوميات .
  • الدالة “UnLoadContent” هي المكان المناسب لإلغاء تحميل كل ما ذكر سابقا (إن لزم).
  • الدالة “Update()” هي الدالة التي يتم إستدعائها في كل إطار من إطارات سير اللعبة “Frame” و التي تساوي بالضبط 60 مره. في هذه الدالة سوف نضع الكود الخاص بنا اللازم لتحديث محتوى اللعبة أثناء تشغيلها, على سبيل المثال الكود الذي يقرأ من لوحة المفاتيح, و الكود الذي يقوم بتحديث العناصر الهندسية في المشهد.
  • الدالة “Draw()” و التي يتم إستدعائها كلما سمح الكمبيوتر (أو بشكل أخص بطاقة الرسوميات) . حيث يتم في هذه الدالة وضع الكود الازم لعملية رسم محتويات المشهد على الشاشة بشكل فعلي.

كما ترى فإنه لايلزمنا كود من أجل فتح شاشة معينة (مثل ال DirectX) , حيث سوف تتم هذه الخطوة بشكل تلقائي. عندما تقوم بتشغيل البرنامج من خلال الضغط على “F5” , سوف ترى شاشة زرقاء جميلة و جاهزه :).

دعنا الآن ننتقل لمناقشة جهاز الرسوميات “Graphics Device” . بشكل ملخص , جهاز الرسوميات هو رابط مباشر إلى بطاقة الرسوميات او ال “Graphical Adapter”. حيث يمثل ال “Graphics Device” كائن "Object" يمنحك وصول مباشر إلى قطع من ال “Hardware” داخل جهازك. نستطيع تعريف المتغير بسهولة في الكود كمتغير من نوع "GraphicsDevice" , و لأننا سوف نستخدم هذا المتغير بشكل كبير سوف نقوم بعمل إختصار لهذا المتغير. اولا و نقوم بتعريف هذا المتغير, من خلال إضافة السطر التالي في بدية الصنف "Class" بالضبط فوق الدالة “Game1()” :

GraphicsDevice device;

بشكل واضح نحتاج لملئ هذا المتغير, و ذلك من خلال وضع السطر التالي في الدالة “LoadContent” :

device = graphics.GraphicsDevice;

بعد ذلك نحتاج إلى تحديد أشياء إضافية متعلقة بالشاشة , مثل حجم الشاشة و عنوانها, طبعا ذلك يتم بوضع الكود التالي في الدالة “Initialize” :

 graphics.PreferredBackBufferWidth = 500;
 graphics.PreferredBackBufferHeight = 500;
 graphics.IsFullScreen = false;
 graphics.ApplyChanges();
 Window.Title = "Riemer's 2D XNA Tutorial";

في السطر الأول و الثاني يتم تحديد حجم الذاكرة الخلفية “BackBuffer” , التي تحتوي على ما سوف يتم رسمه على الشاشة. في السطر الثالث نقوم بتحديد فيما إذا كنا نريد تشغيل اللعبه في وضع ملئ الشاشة ام لا, بعد ذلك نقوم بتطبيق التغيرات. في السطر الأخير يتم تحديد عنوان الشاشة.

الآن قم بتشغيل البرنامج "F5" يجب ان يظهر لك شاشة بحجم 500 * 500 بكسل , مع العنوان الذي قمت بوضعه:

post-133895-1235663346_thumb.jpg

بعد كل درس سوف احاول ان اقترح بعض المسائل, لمساعدتك على ممارسة ما قمت بتعلمه في هذا الدرس. بعد المسائل سوف اقوم بوضع كامل الكود للمشروع مع التغيرات التي قمنا بها في الدرس. سوف اقوم بحذف الملاحظات "Comments" لذلك سوف يبدو الكود مضغوط قليلا.

ملاحظة هامة:

إذا قمت بعمل نسخ و لصق للكود في ملف ال "Game.CS" الخاص بك, تأكد من قيامك بتغيير اسم ال “Namespace” في ملف ال “Program.CS” الخاص بك إلى “XNAtutorial” (إذا لم يكن كذلك اصلا). ال “Namespace” هو نفس الأسم الذي قمت بتحديده عند قيامك بإنشاء مشروع جديد.

 

• بإمكانك تجربة حل المسائل التاليه , بناء على ما تعلمته من الدرس:

• غير حجم الشاشة إلي 800 * 600.

• إجعل اللعبة تعمل في وضع ملئ الشاشة بدلا من وضع الشاشة العادية (إستخدم Alt + F4 لإيقاف البرنامج).

كود المشروع حتى الآن :

using [color= #990000;]System[color= #339933;];

 using [color= #990000;]System[color= #339933;].Collections[color= #339933;].Generic[color= #339933;];

 using Microsoft[color= #339933;].Xna[color= #339933;].Framework[color= #339933;];

 using Microsoft[color= #339933;].Xna[color= #339933;].Framework[color= #339933;].Audio[color= #339933;];

 using Microsoft[color= #339933;].Xna[color= #339933;].Framework[color= #339933;].Content[color= #339933;];

 using Microsoft[color= #339933;].Xna[color= #339933;].Framework[color= #339933;].GamerServices[color= #339933;];

 using Microsoft[color= #339933;].Xna[color= #339933;].Framework[color= #339933;].Graphics[color= #339933;];

 using Microsoft[color= #339933;].Xna[color= #339933;].Framework[color= #339933;].Input[color= #339933;];

 using Microsoft[color= #339933;].Xna[color= #339933;].Framework[color= #339933;].Net[color= #339933;];

 using Microsoft[color= #339933;].Xna[color= #339933;].Framework[color= #339933;].Storage[color= #339933;];

 

 namespace XNAtutorial

 [color= #009900;]{

	 [color= #000000; font-weight: bold;]public [color= #000000; font-weight: bold;]class Game1 [color= #339933;]: Microsoft[color= #339933;].Xna[color= #339933;].Framework[color= #339933;].Game

	 [color= #009900;]{

		 GraphicsDeviceManager graphics[color= #339933;];

		 SpriteBatch spriteBatch[color= #339933;];

		 GraphicsDevice device[color= #339933;];

 

		 [color= #000000; font-weight: bold;]public Game1[color= #009900;]([color= #009900;])

		 [color= #009900;]{

			 graphics [color= #339933;]= [color= #000000; font-weight: bold;]new GraphicsDeviceManager[color= #009900;](this[color= #009900;])[color= #339933;];

			 Content[color= #339933;].RootDirectory [color= #339933;]= [color= #0000ff;]"Content"[color= #339933;];

		 [color= #009900;]}

 

		 protected override void Initialize[color= #009900;]([color= #009900;])

		 [color= #009900;]{

			 graphics[color= #339933;].PreferredBackBufferWidth [color= #339933;]= [color= #cc66cc;]500[color= #339933;];

			 graphics[color= #339933;].PreferredBackBufferHeight [color= #339933;]= [color= #cc66cc;]500[color= #339933;];

			 graphics[color= #339933;].IsFullScreen [color= #339933;]= [color= #000000; font-weight: bold;]false[color= #339933;];

			 graphics[color= #339933;].ApplyChanges[color= #009900;]([color= #009900;])[color= #339933;];

			 Window[color= #339933;].Title [color= #339933;]= [color= #0000ff;]"Riemer's 2D XNA Tutorial"[color= #339933;];

 

			 base[color= #339933;].Initialize[color= #009900;]([color= #009900;])[color= #339933;];

		 [color= #009900;]}

 

		 protected override void LoadContent[color= #009900;]([color= #009900;])

		 [color= #009900;]{

			 device [color= #339933;]= graphics[color= #339933;].GraphicsDevice[color= #339933;];

			 spriteBatch [color= #339933;]= [color= #000000; font-weight: bold;]new SpriteBatch[color= #009900;](device[color= #009900;])[color= #339933;];

		 [color= #009900;]}

 

		 protected override void UnloadContent[color= #009900;]([color= #009900;])

		 [color= #009900;]{

		 [color= #009900;]}

 

		 protected override void Update[color= #009900;](GameTime gameTime[color= #009900;])

		 [color= #009900;]{

			 [color= #b1b100;]if [color= #009900;](GamePad[color= #339933;].GetState[color= #009900;](PlayerIndex[color= #339933;].One[color= #009900;])[color= #339933;].Buttons[color= #339933;].Back [color= #339933;]== ButtonState[color= #339933;].Pressed[color= #009900;])

				 this[color= #339933;].[color= #990000;]Exit[color= #009900;]([color= #009900;])[color= #339933;];

 

			 base[color= #339933;].Update[color= #009900;](gameTime[color= #009900;])[color= #339933;];

		 [color= #009900;]}

 

		 protected override void Draw[color= #009900;](GameTime gameTime[color= #009900;])

		 [color= #009900;]{

			 graphics[color= #339933;].GraphicsDevice[color= #339933;].Clear[color= #009900;](Color[color= #339933;].CornflowerBlue[color= #009900;])[color= #339933;];

 

			 base[color= #339933;].Draw[color= #009900;](gameTime[color= #009900;])[color= #339933;];

		 [color= #009900;]}

	 [color= #009900;]}

 [color= #009900;]}

ملف PDF

__________________________________Xna.pdf

إنتقل إلى الدرس التالي ==>>

أو

تابع مناقشة الأعضاء

تم تعديل هذه المشاركة بواسطة خلدون خالد2 في 27 فبراير 2009 في 17:43

1
#2

اكمل اخي متابع

حل المسألةداخل دالة Initialize

graphics.PreferredBackBufferWidth = 800;
			graphics.PreferredBackBufferHeight = 600;
			graphics.IsFullScreen = true;
			graphics.ApplyChanges();
			Window.Title = "Keep up the good work";
			base.Initialize();

تم تعديل هذه المشاركة بواسطة اسد الاسود في 27 فبراير 2009 في 06:55

#3

بارك الله فيك , أهم شيء الاستمرار , وان شاء الله ستقوم بذلك ;)

مهتم كثيرا بهذا الموضوع , وعقبتي الان هي تعلم لغة السي شاب فقط ( ساتجاوزها بحول الله ) , سبق ان طبقت هذا المثال بمساعدة احد الاخوة , لذلك المثال واضح حتى الان باستثناء هذا السطر :

GamePad.GetState(PlayerIndex.One).Buttons.Back

ماهو المقصود به ..خاصة PlayerIndex .

لم ابحث بصراحة , ولكن احب ان نتناقش في هذا :D ونستفيد ايضا .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#4

أهلا بالجميع

اقتباس
اكمل اخي متابع

حل المسألة داخل دالة Initialize

صحيح :)

اقتباس
مهتم كثيرا بهذا الموضوع , وعقبتي الان هي تعلم لغة السي شاب فقط ( ساتجاوزها بحول الله ) , سبق ان طبقت هذا المثال بمساعدة احد الاخوة , لذلك المثال واضح حتى الان باستثناء هذا السطر :

السي شارب ليست عقبه تأكم من هذا الكلام , اول سطر سي شارب كتبته قبل أسبوعين فقط , إذا كنت تعرف Vb.net + Java or ++C

فالموضوع محلول إن شاء الله , فقط قم بكتابة فيجوال بيسك بال Syntax الخاص بالجافا او السي ++. :)

اقتباس
ماهو المقصود به ..خاصة PlayerIndex

صراحة و كما قلت في أول سطر في الموضوع أني "سوف اتعلم ال Xna" هذا يعني أنه لا يوجد عندي جواب مسبق للسؤال :) , و لكن قمت بعمل بحث سريع

و حسبما فهمت أنها تعني او تشير إلى ال Controler او اداة التحكم التي تكون مربوطة مع ال XBox , بحيث أن ال PlayerIndex.One

تمثل المتحكم الأول , الثاني تمثل الثاني و هكذا ,

أما في اللعبة على الويندوز , فأتوقع أنها تمثل الأزرار مثل زر الإغلاق في أعلى الشاشة ,

أنظر هنا لمعلومات أكثر

بكل الأحوال هذا السطر , أو هذه الدالة بشكل عام يتم إنشائها بشكل تلقائي عند إنشاء مشروع جديد .

تحياتي , و إن شاء الله اليوم أضع الدرس التالي

#5

السلام عليكم

اخى ممكن لو سمحت مصدر الدروس بالأنجليزيه

hh.jpg
#7

السلام عليكم

جزاكم الله كل خيير على الرابط

وهذا الاصدار الثالث من ال xna

http://download.microsoft.com/download/0/e...AGS30_setup.exe

وهو يتوافق مع دوت نت 2008

hh.jpg
#8

شكرا لك اخى على مجهودك الرائع وياريت تستمر وسوف نكون معك بأمر الله

#9

بسم الله الرحمن الرحيم

اولا اجدد لك التحيه على مجهودك الرائع

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

وعلى فكره الفرق بين الاصدارين مش كبير ده بصيت

ثالثا حل المسأله



public Game1()

{

graphics =
new GraphicsDeviceManager(this);

Content.RootDirectory =
"Content";

graphics.PreferredBackBufferWidth = 800;
// عرض الشاشه 800



graphics.PreferredBackBufferHeight = 600;
// طول الشاشه 600



graphics.IsFullScreen =
true; // العمل فى ملء الشاشه



}

وسيكون كود اللعبة حتى الان على هذا الشكل



using System;



using System.Collections.Generic;



using System.Linq;



using Microsoft.Xna.Framework;



using Microsoft.Xna.Framework.Audio;



using Microsoft.Xna.Framework.Content;



using Microsoft.Xna.Framework.GamerServices;



using Microsoft.Xna.Framework.Graphics;



using Microsoft.Xna.Framework.Input;



using Microsoft.Xna.Framework.Media;



using Microsoft.Xna.Framework.Net;



using Microsoft.Xna.Framework.Storage;



namespace Lesson_1

{

public class Game1 : Microsoft.Xna.Framework.Game



{

GraphicsDeviceManager graphics;

SpriteBatch spriteBatch;

public Game1()

{

graphics = new GraphicsDeviceManager(this);

Content.RootDirectory = "Content";

graphics.PreferredBackBufferWidth = 800; // عرض الشاشه 800



graphics.PreferredBackBufferHeight = 600; // طول الشاشه 600



graphics.IsFullScreen = true; // العمل فى ملء الشاشه



}

protected override void Initialize()

{

base.Initialize();

}

protected override void LoadContent()

{

spriteBatch = new SpriteBatch(GraphicsDevice);

}

protected override void UnloadContent()

{



}

protected override void Update(GameTime gameTime)

{

if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)

this.Exit();

base.Update(gameTime);

}

protected override void Draw(GameTime gameTime)

{

GraphicsDevice.Clear(Color.CornflowerBlue);

base.Draw(gameTime);

}

}

}

والان نلتقى فى الدرس الثانى

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

تم تعديل هذه المشاركة بواسطة a_e في 14 مارس 2009 في 15:33

#10
اقتباس
بسم الله الرحمن الرحيم

اولا اجدد لك التحيه على مجهودك الرائع

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

وعلى فكره الفرق بين الاصدارين مش كبير ده بصيت

أهلا بك من جديد , صراحة أنا لم أجرب الإصدار الثالث بعد , لا يوجد عندي VS.net 2008 أيضا.

ولكن إذا كنت تريد تطبيق الدروس بإستخدام النسخه الثالثة, لا مانع من أن تقوم بالإشارة إلى بعض مواضع الإختلاف بينها (إن صدفت أثناء تطبيق الدروس).

و الحل صحيح :)

#11

جزاك الله خيراااا اخى الكريم ,

فقد كنت ابحث عن حل سريع وتعليم سريع او مدخل بسيط لبرمجة الألعاب

بارك الله فيك

#12

تباً له من حظ تَعِس المحرك اسهل واروع ممّا توقعت لماذا لا يدعم الـ ++C ؟

If Games Are Fun.....So Making Games Making Fun

#13
اقتباس
تباً له من حظ تَعِس المحرك اسهل واروع ممّا توقعت لماذا لا يدعم الـ ++C ؟

بالعكس هذا من حسن الحظ،

حاليا لا يدعم ال C++ ، ولكن ال C# أسهل بكثيير و خصوصا إذا كان لك خلفيه في الجافا و الفيجوال بيسك

بكل الأحوال إعتبرها و تعلم أساسيات ال C# في يومين و أكمل بعدها Xna

ليس بالضروره أن تتعلم كل مكتبات ال C# ولكن تعلم الأشياء البسيطه مثل كتابة الكلاسات و الدوال و ما إلى ذالك، بهذا سوف تكسب الوقت و الباقي تتعلمه لاحقا.

أيضا لا تتعلم ال GUI لأنه لا يلزم

:)

#14

السلام عليكم

اخي الكريم , لما جيت اثبت Microsoft XNA Game Studio 2.0 ما قدرت , يقولي ان في شي ناقص و حاط لي رابطين و هم نفس الموقع ل Microsoft Visual Studio C# Express مع العلم اني ثبت visual stdio C# 2008

#15
Game11 كتب:

السلام عليكم

اخي الكريم , لما جيت اثبت Microsoft XNA Game Studio 2.0 ما قدرت , يقولي ان في شي ناقص و حاط لي رابطين و هم نفس الموقع ل Microsoft Visual Studio C# Express مع العلم اني ثبت visual stdio C# 2008

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

ال Microsoft XNA Game Studio 2.0 تعمل مع ال Visual Studio 2005 Service Pack 1 سواء Express أو غيرها، (لم أجربها مع ال 2008)

هذا الرابط للنسخة ال Express و هي مجانية http://www.microsoft.com/express/2005/download/default.aspx#

بكل الأحوال لو قمت بتنزيل Xna 3.0 سوف تعمل مع ال Visual Studio 2008 بإذن، و بالمقابل ذلك لن يؤثر عليك أثناء قراءة السلسلة (الكود متوافق على الأغلب)

#16

جزاك الله الف خير

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